И двигатель полигонов - PullRequest
       34

И двигатель полигонов

4 голосов
/ 13 февраля 2012

Я использую AndEngine для разработки игр, и моя проблема в том, что я не знаю, как именно я должен установить тело многоугольника для спрайта.

Я пробовал код, упомянутый здесь http://www.andengine.org/forums/gles1/complex-collision-surface-t5593.html#p24822, но безуспешно.

Есть ли другой способ заставить его работать? Я также прилагаю свой код:

if (type.equals(ObjectType.STAIRS)) {
            final BodyDef bodyDef = new BodyDef();
            bodyDef.type = type.bodyType;
            bodyDef.position.x=5;
            bodyDef.position.y=5;
            final Body mBody = body;


            PolygonShape pol1 = new PolygonShape();
            Vector2[] vertices = {//rectangular
                    new Vector2(0,
                            -sprite.getHeight() * 0.5f),//top right
                    new Vector2(-sprite.getWidth() * 0.5f,//top left
                            -sprite.getHeight() * 0.5f),
                    new Vector2(-sprite.getWidth() * 0.5f,//bottom left
                            sprite.getHeight() * 0.5f),
                    new Vector2(0,//bottom right
                            sprite.getHeight() * 0.5f) };
            pol1.set(vertices);
            fixtureDef.shape = pol1;
            mBody.createFixture(fixtureDef);            
            pol1.dispose();


            final PolygonShape pol2 = new PolygonShape();
            Vector2[] vertices2 = {//triangular
                    new Vector2(0,
                            -sprite.getHeight() * 0.5f),//top
                    new Vector2(0,
                            sprite.getHeight() * 0.5f),//left
                    new Vector2(sprite.getWidth() * 0.5f,
                            sprite.getHeight() * 0.5f),//right
                    };
            pol1.set(vertices2);
            fixtureDef.shape = pol2;
            mBody.createFixture(fixtureDef);
            pol2.dispose();
            body=mBody;

Ответы [ 2 ]

1 голос
/ 16 августа 2012

Я наконец решил эту проблему, используя PhysicsEditor и его загрузчик: http://www.codeandweb.com/physicseditor

0 голосов
/ 19 февраля 2014

похоже, что вы не использовали масштабирование по ширине и постоянное соотношение пикселей к метру, чтобы сделать это в метре.

нужно использовать физический разъем для регистрации тела на спрайте я думаю ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...