有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java 2个数组之间不可预测的冲突

我目前正在安德林开发一款游戏,但我的碰撞检测似乎有点不对劲。这很有效。。大多数时候,但似乎当与一个物体发生碰撞时,它不会与另一个物体发生碰撞。这很难解释,而且很难预测。如果汽车遇到雪,它应该减速。如果汽车撞到冰上,它应该加速

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);
}
}

我的代码有什么问题吗?目前,两个敌人阵列只有一个元素。这就是为什么我只检查0。谢谢


共 (1) 个答案

  1. # 1 楼答案

    您应该删除碰撞检测if测试中的break;。(或者,如果你只想在同一辆车上下雪或下雪,而不想在同一辆车上同时下雪或下雪,请将其更改为继续……不确定你的游戏在这方面是如何工作的)