Box2D fun

by UncleNinja
By the way, this was forgotted/failed
♥0 | Line 46 | Modified 2010-04-04 23:35:33 | MIT License
play

ActionScript3 source code

/**
 * Copyright UncleNinja ( http://wonderfl.net/user/UncleNinja )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/7KCz
 */

//By the way, this was forgotted/failed

package {
    import flash.display.Sprite;
    import Box2D.Collision.b2AABB;
    import Box2D.Common.Math.b2Vec2;
    import Box2D.Dynamics.b2World;
    import Box2D.Dynamics.b2BodyDef;
    import Box2D.Dynamics.b2Body;
    import Box2D.Collision.Shapes.b2PolygonDef;
    
    public class Box2DFun extends Sprite {
    		private const RATIO:int=30;
    		private var _world:b2World;
        public function Box2DFun():void {
        	
        }
    
        public function setupWorld():void {
	        		var worldAABB:b2AABB = new b2AABB();
				worldAABB.lowerBound.Set(-100.0, -100.0);
				worldAABB.upperBound.Set(100.0, 100.0);
				
				var gravity:b2Vec2 = new b2Vec2 (0.0, -10.0);
				var doSleep:Boolean = true;
				_world = new b2World(worldAABB, gravity, doSleep);
				
				var groundBodyDef:b2BodyDef = new b2BodyDef();
				groundBodyDef.position.Set(0.0, -10.0);
				var groundBody:b2Body = _world.CreateBody(groundBodyDef);
				
				var groundShapeDef:b2PolygonDef = new b2PolygonDef();
				groundShapeDef.SetAsBox(50.0, 10.0);
				
				groundBody.CreateShape(groundShapeDef);
				
				var bodyDef:b2BodyDef = new b2BodyDef();
				bodyDef.position.Set(0.0, 4.0);
		
				var body:b2Body = _world.CreateBody(bodyDef);
				
				var shapeDef:b2PolygonDef = new b2PolygonDef();
				shapeDef.SetAsBox(1.0, 1.0);
				shapeDef.density = 1.0;
				shapeDef.friction = 0.3;
				body.CreateShape(shapeDef);
				body.SetMassFromShapes();
				
				var timeStep:Number = 1.0 / 60.0;
				var iterations:Number = 10;
				
				for (var i:Number = 0; i < 60; ++i) {
	    				_world.Step(timeStep, iterations);
	    				var position:b2Vec2 = body.GetPosition();
	    				var angle:Number = body.GetAngle();
	    				trace(position.x +','+ position.y +','+ angle);
				}
        		
        }
    }
}

Forked