我想在for循环遍历对象的ArrayList中重新分配变量.但无论我尝试什么,似乎都没有任何效果.基本上我的代码看起来像这样:
for (int i = 0; i < enemies.size(); i++) {
AbstractEnemy enemy = enemies.get(i);
if (enemy.intersects(bullet)) {
enemy.getsHit(bullet.getDamage());
bulletList.remove(bullet);
if (enemy.isDead()) {
// This does not work
enemy = new ExplodingEnemy(enemy.x, enemy.y);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
das*_*ght 11
创建一个新的敌人没有任何效果,因为您将敌方对象分配给临时变量,其生命周期限于单循环迭代.如果你想将敌人对象存储在敌人列表中,你需要添加一个set方法调用,如下所示:
enemy = new ExplodingEnemy(enemy.x, enemy.y);
enemies.set(i, enemy);
Run Code Online (Sandbox Code Playgroud)
这将用你刚刚创建的对象替换代表敌人的旧对象.
| 归档时间: |
|
| 查看次数: |
263 次 |
| 最近记录: |