package flare.physics { /** * Force simulating a global gravitational pull on Particle instances. */ public class GravityForce implements IForce { private var _gx:Number; private var _gy:Number; /** The gravitational acceleration in the horizontal dimension. */ public function get gravityX():Number { return _gx; } public function set gravityX(gx:Number):void { _gx = gx; } /** The gravitational acceleration in the vertical dimension. */ public function get gravityY():Number { return _gy; } public function set gravityY(gy:Number):void { _gy = gy; } /** * Creates a new gravity force with given acceleration values. * @param gx the gravitational acceleration in the horizontal dimension * @param gy the gravitational acceleration in the vertical dimension */ public function GravityForce(gx:Number=0, gy:Number=0) { _gx = gx; _gy = gy; } /** * Applies this force to a simulation. * @param sim the Simulation to apply the force to */ public function apply(sim:Simulation):void { if (_gx == 0 && _gy == 0) return; var p:Particle; for (var i:uint=0; i