| ||
Obviously, the big formula here is gravity.
Basic gravity:
force = G * m1 * m2 / distance 2
ActionScript-friendly gravity implementation:
function gravitate(partA:MovieClip, partB:MovieClip):Void { var dx:Number = partB._x - partA._x; var dy:Number = partB._y - partA._y; var distSQ:Number = dx*dx + dy*dy; var dist:Number = Math.sqrt(distSQ); var force:Number = partA.mass * partB.mass / distSQ; var ax:Number = force * dx / dist; var ay:Number = force * dy / dist; partA.vx += ax / partA.mass; partA.vy += ay / partA.mass; partB.vx -= ax / partB.mass; partB.vy -= ay / partB.mass; }
| ||