Показать сообщение отдельно
Старый 22.05.2015, 04:39
neonoviiwolf вне форума Посмотреть профиль Отправить личное сообщение для neonoviiwolf Найти все сообщения от neonoviiwolf
  № 1  
Ответить с цитированием
neonoviiwolf

Регистрация: Jun 2014
Сообщений: 558
По умолчанию Вопрос по Box2D, как делать правильно

Добрый день!
Щас впервые щупаю 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?