2个阵列之间不可预测的冲突

时间:2013-04-16 16:21:54

标签: java android andengine

我目前正在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.谢谢!

1 个答案:

答案 0 :(得分:0)

您应该删除碰撞检测break;测试中的if。 (或者如果你只想要雪或冰,可以改变它继续但不能同时用于同一辆车...不确定你的游戏在这方面是如何运作的。)