
Код AS1/AS2:
var bodyBit1_:b2Body;
var bodyDef_:b2BodyDef;
var polygonShape_:b2PolygonShape;
var fixtureDef_:b2FixtureDef;
var hStage_:int = _mapBase.stage.stageHeight;
var wStage_:int = _mapBase.stage.stageWidth;
var wallThickness_:Number = 5; //толщина стены в пикселях
bodyDef_ = new b2BodyDef();
bodyDef_.position.Set((wallThickness_ + 60) / METERS, (hStage - wallThickness_ - 48 * 2) / METERS); // позиция
bodyDef_.type = b2Body.b2_dynamicBody;
polygonShape_ = new b2PolygonShape();
polygonShape_.SetAsArray([b2Vec2.Make(-10 / METERS, -10 / METERS), b2Vec2.Make(70 / METERS, 0 / METERS), b2Vec2.Make(-10 / METERS, 10 / METERS)]); // фигура треугольника
bodyBit1_ = _mapBase.world.CreateBody(bodyDef_);
fixtureDef_ = new b2FixtureDef();
fixtureDef_.shape = polygonShape_;
bodyBit1_.SetUserData("bit 1");
bodyBit1_.CreateFixture(fixtureDef_);
// Дальше идет код, который я уже постил выше. Джоинт:
var _frontWheelJoint:b2RevoluteJoint = _mapBase.world.CreateJoint(_jointDef) as b2RevoluteJoint;
var revoluteJointDef:b2RevoluteJointDef = new b2RevoluteJointDef();
revoluteJointDef.Initialize(bodyBit1_, _mapBase.world.GetGroundBody(), bodyBit1_.GetWorldCenter());
revoluteJointDef.maxMotorTorque = 1;
revoluteJointDef.enableMotor = true;
_mapBase.world.CreateJoint(revoluteJointDef);
все переменные локальны