Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Вопрос по Box2D, как делать правильно (http://www.flasher.ru/forum/showthread.php?t=210893)

neonoviiwolf 22.05.2015 04:39

Вопрос по 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?


Часовой пояс GMT +4, время: 15:15.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.