forked from: Box2D fun
forked from Box2D fun (diff: 14)
By the way, this was forgotted/failed
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;
}
}
}