0

我目前正在 AndEngine 中构建游戏,但我的碰撞检测似乎有点偏离。它可以工作..大多数时候,但似乎当与一个物体发生碰撞时,它不会做另一个。这很难解释,而且非常难以预测。如果汽车撞到雪地,它应该减速。如果汽车撞到冰上,它应该加速。

for (int i = 0; i < rManager.carArray.length; i++)
{
if (rManager.getInstance().snowArray[0].getSnowSprite().collidesWith(rManager.getInstance().carArray[i].getCarSprite()))
{
    Log.e("SNOW", "snow 0 collided with " + rManager.getInstance().carArray[i].ToString());
    rManager.getInstance().carArray[i].setCarSpeed(0.1f);
    break;
}

if (rManager.getInstance().iceArray[0].getIceSprite().collidesWith(rManager.getInstance().carArray[i].getCarSprite()))
{
    Log.e("ICE", "ice 0 collided with " + rManager.getInstance().carArray[i].ToString());
    rManager.getInstance().carArray[i].setCarSpeed(1f);
    break;
}

else
{
    rManager.getInstance().carArray[i].setCarSpeed(0.5f);
}
}

我的代码有什么问题吗?目前,两个敌人数组都只有 1 个元素。这就是为什么我只检查 0。谢谢!

4

1 回答 1

0

break;您应该在碰撞检测if测试中删除。(或者如果您只想要雪或冰,而不是同一辆车,则将其更改为继续......不太清楚您的游戏在这方面是如何运作的)。

于 2013-04-16T23:00:50.060 回答