Duff Physics Alpha
This example was made using the following code:
public function createEngine():void { midPoint = new Point(); midPoint.x = stage.stageWidth / 2; midPoint.y = stage.stageHeight / 2; engine = new PhysicsEngine(); var iterator:Ball; var pFactor:PauliFactor; for( var i:int = 0; i < TOTAL_BALLS; i++ ) { iterator = new Ball(); iterator.x = MathUtil.randRange( 100, 700 ); iterator.y = MathUtil.randRange( 100, 500 ); addChild( iterator ); pFactor = new PauliFactor( iterator, i, 10 ); pFactor.engine = engine; pFactor.magneticPoint = midPoint; pFactor.gravity = GRAVITY_STRENGTH; pFactor.aggression = pauliStrength; engine.addFactor( pFactor ); } iterator = null; engine.addEventListener( PhysicsEvent.RENDER, updateEngine ); engine.start(); } private function updateEngine( evt:PhysicsEvent ):void { var iterator:PauliFactor; if( FOLLOW_MOUSE ) { midPoint.x = mouseX; midPoint.y = mouseY; } else { midPoint.x = STAGE_MID_WID; midPoint.y = STAGE_MID_HEI; } graph.clear(); graph.lineStyle( 1, 0x262626, 1 ); graph.moveTo( engine.factors[0].x, engine.factors[0].y ); for( var i:int = 0; i < engine.totalFactors; i++ ) { iterator = PauliFactor( engine.factors[i] ); iterator.magneticPoint = midPoint; iterator.useMagnetism = USE_MAGNETISM; iterator.usePauli = USE_PAULI; iterator.aggression = pauliStrength; iterator.gravity = GRAVITY_STRENGTH; graph.lineTo( iterator.x, iterator.y ); } graph.lineTo( engine.factors[0].x, engine.factors[0].y ); }
The goal of this physics engine is to simplify common physics scenarios with ease.
I plan on converting this to Objective C once the official release is complete.
No comments yet