Добрый день!
Щас впервые щупаю Box2D, появился вопрос.
Что я делаю, создаю в классе Main b2World, задаю гравитацию и т.п. как обычно.
Дальше у меня есть мувик mainShip, создаю класс, который его наследует и для того, что бы привязать его к физике, в этот класс кидаю ссылку на b2World из Main, для того, что бы он привязался к миру (в других классах будут другие мувики/спрайты, которые будут тож участвовать в физике). Ну в общем то всё заработало, но хотелось бы ещё в самом начале спросить, именно так делают или есть варианты проще/эффективнее ?
Код AS3:
package MainShip
{
import Box2D.Collision.Shapes.b2PolygonShape;
import Box2D.Common.Math.b2Vec2;
import Box2D.Dynamics.b2Body;
import Box2D.Dynamics.b2BodyDef;
import Box2D.Dynamics.b2Fixture;
import Box2D.Dynamics.b2World;
import flash.events.Event;
public class MainShipClass extends ship_mc
{
private var world:b2World;
private var body:b2Body;
private var bodyDef:b2BodyDef;
private var bodyShapePoligon:b2PolygonShape;
private var fixture:b2Fixture;
private var meters:Number = 30; //соотношения пикселей к метрам
public function MainShipClass(_world:b2World)
{
scaleX = 0.35;
scaleY = 0.35;
x = 800;
y = 525;
this.world = _world;
objectBox2D();
}
private function objectBox2D():void
{
bodyDef = new b2BodyDef();
bodyDef.type = b2Body.b2_dynamicBody;
bodyDef.position.Set(800 / meters, 525 / meters);
body = world.CreateBody(bodyDef);
bodyShapePoligon = new b2PolygonShape();
bodyShapePoligon = new b2PolygonShape(); //создаем шейп
bodyShapePoligon.SetAsArray([b2Vec2.Make(-1.6, 1.3), b2Vec2.Make(0, -1.8), b2Vec2.Make(1.6, 1.3)], 3);
body.CreateFixture2(bodyShapePoligon, 3); //крепим к телу
}
}
}
второе, пока не разобрался, как заставить мувик двигаться в месте с объектом box2d?