forked from: Box2D fun

by aobyrne forked from Box2D fun (diff: 14)
By the way, this was forgotted/failed
♥0 | Line 56 | Modified 2011-04-18 00:00:27 | MIT License
play

ActionScript3 source code

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

// forked from UncleNinja's Box2D fun
//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;
    import com.bit101.components.TextArea;
    
    public class Box2DFun extends Sprite {
            private const RATIO:int=30;
            private var _world:b2World;
            private var console:TextArea;
            public function Box2DFun():void 
            {
            console = new TextArea(this, 200, 0, "");
            console.setSize(265, 465);
            setupWorld();
           
            }
    
        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();
                        cTrace(i+":"+position.x.toFixed(2) +','+ position.y.toFixed(2) +','+ angle);
                }
                
        }
        private function cTrace(msg:String):void 
        {
            console.text += "\n"+msg;
        }
    }
}