gpt4 book ai didi

Java IndexOutOfBoundsException

转载 作者:搜寻专家 更新时间:2023-10-31 08:14:23 28 4
gpt4 key购买 nike

我做了一个小射击游戏..它工作正常但我也想实现如果火相交它们会消失。我有两个播放器子弹列表和计算机子弹列表......但是如果我有更多来自计算机或反向的子弹。这是我的循环

     for (int i = 0; i < cb.size(); i++) {
for (int j = 0; j < b.size(); j++) {
if (b.get(j).rect.intersects(cb.get(i).rect)) {

cb.remove(i);
b.remove(j);


continue;

}
if (cb.get(i).rect.intersects(b.get(j).rect)) {


b.remove(j);
cb.remove(i);

continue;

}

}

}

这是我的游戏,它使用算法...... http://rapidshare.com/files/364597095/ShooterGame.2.6.0.jar

最佳答案

我强烈建议反对 在循环本身内使用 for 循环计数器。你现在小心了,以后你就不会小心了(“让我们在这里尝试 hack 来调试”),最终会遇到错误。

一个解决方案可能是:

  • 检查两个对象是否相交
  • 如果他们这样做,将引用保存到一个单独的列表中thingsToRemove
  • 最后,通过 thingsToRemove并删除(或设置为“null”,或 -1 或其他)cb 中的相应元素和 b列出

关于Java IndexOutOfBoundsException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2461228/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com