我正在使用Java制作塔防游戏,但我遇到了for循环和ArrayLists的问题。我的Tower.java类中有一段类似的代码(用于建筑物,用于拍摄/防御的东西):
for (Enemy e : enemies) {
shoot();
}
每当我的事情开始时,他们选择最后一个Enemy.class实例并创建一个我的Bullet.java类的新实例,然后向敌人移动(arraylist中的最后一个)。我想要的是塔/建筑物选择第一个或最近的一个并射向它。关于如何做到这一点的任何想法?
修改:
这是我的Tower.java课程:http://pastebin.com/uEiQ4F20
这个问题与我在其他项目中的问题非常相似。基本上,遍历ArrayList中的每个类的实例似乎都不能很好地工作,因为无论我在循环中做什么,它只会影响ArrayList中类的最后一个实例。
修改:
显然,有人从pastebin中删除了Enemy.java粘贴,所以在这里
它又是:http://pastebin.com/jMGNVBLQ
答案 0 :(得分:0)
我通过添加以下代码行解决了这个问题:
if (!enemy.removed && enemy == level.enemies.get(level.enemiesKilled))