パーティクルをやってみた3




前回のやつの引力の計算をバネが与える力の計算に変えただけです。


こんな感じ。


バネの計算ところ

//バネの計算
        private function spring(partA:Ball, partB:Ball):void{
            var dx:Number = partB.x - partA.x;
            var dy:Number = partB.y - partA.y;
            var dist:Number = Math.sqrt(dx * dx + dy * dy);
            if(dist < minDist){
                graphics.lineStyle(1, 0xFFFFFF, 1 - dist / minDist);
                graphics.moveTo(partA.x, partA.y);
                graphics.lineTo(partB.x, partB.y);
                var ax:Number = dx * springAmount;
                var ay:Number = dy * springAmount;
                partA.vx += ax / partA.mass;
                partA.vy += ay / partA.mass;
                partB.vx -= ax / partB.mass;
                partB.vy -= ay / partB.mass;
            }
        }


ソース
Animation_Particle_Spring.as
Ball.as


参考本

ActionScript 3.0 アニメーション

ActionScript 3.0 アニメーション