Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在andengine中将一个碰撞器拆分为两个不同的长方体碰撞器_Android_Box2d_Andengine_Game Physics - Fatal编程技术网

Android 如何在andengine中将一个碰撞器拆分为两个不同的长方体碰撞器

Android 如何在andengine中将一个碰撞器拆分为两个不同的长方体碰撞器,android,box2d,andengine,game-physics,Android,Box2d,Andengine,Game Physics,我有一个非常简单的雪碧,上半部分厚,下半部分薄。我在上面贴了一个盒子。现在的问题是,当物体被视为矩形时,即使物体没有接触下半部的精灵,也会发生碰撞。我想要做的就是修改上部和底部的碰撞器宽度。有人能告诉我怎么做,最好的方法是什么吗?车身可以由多个固定装置组成,因此您可以制作两个固定装置,一个用于上半部,一个用于下半部,然后将它们都添加到车身中 例如,如果要将下半部分做成2x4矩形,将上半部分做成4x4矩形,可以执行以下操作: PolygonShape bottomHalfShape = n

我有一个非常简单的雪碧,上半部分厚,下半部分薄。我在上面贴了一个盒子。现在的问题是,当物体被视为矩形时,即使物体没有接触下半部的精灵,也会发生碰撞。我想要做的就是修改上部和底部的碰撞器宽度。有人能告诉我怎么做,最好的方法是什么吗?

车身可以由多个固定装置组成,因此您可以制作两个固定装置,一个用于上半部,一个用于下半部,然后将它们都添加到车身中

例如,如果要将下半部分做成2x4矩形,将上半部分做成4x4矩形,可以执行以下操作:

    PolygonShape bottomHalfShape = new PolygonShape();
    bottomHalfShape.set(new Vector2[] {new Vector2(2, 0), new Vector2(4, 0), new Vector2(4, 4), new Vector2(2, 4)});
    PolygonShape topHalfShape = new PolygonShape();
    topHalfShape.set(new Vector2[] {new Vector2(0, 4), new Vector2(4, 4), new Vector2(4, 8), new Vector2(0, 8)});

    FixtureDef bottomHalf = new FixtureDef();
    bottomHalf.shape = bottomHalfShape;
    FixtureDef topHalf = new FixtureDef();
    topHalf.shape = topHalfShape;

    body.createFixture(bottomHalf);
    body.createFixture(topHalf);

请注意,这是libGDX的示例代码,对于AndEngine可能需要稍微修改。

使用此函数创建实体时,我是否不必删除默认开发的形状最终实体b=PhysicsFactory.createBoxBody(physicsWorld,MY_SPRITE,BodyType.KineticBody,objectFixtureDef)@RohitGoyal是的,一旦你使用完所有你创建的形状,你就必须销毁它们。你能告诉我怎么做吗?找不到任何可以告诉我默认形状并将其销毁的函数。@RohitGoyal抱歉,在AndEngine中,似乎您不必这样做。