和引擎多边形

时间:2012-02-13 00:34:00

标签: android andengine polygon

我正在使用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 个答案:

答案 0 :(得分:1)

我终于使用PhysicsEditor解决了这个问题,它是加载器:http://www.codeandweb.com/physicseditor

答案 1 :(得分:0)

看起来你没有使用获取宽度缩放和像素与米的比例不变来使其达到计量。

需要使用物理连接器将身体注册到sprite我认为......