【发布时间】:2016-06-30 00:54:33
【问题描述】:
所以我有一个数组列表,用于存储有关宇宙的不同对象(行星、彗星、恒星等)。而不是这样做:
planet.decreaseLifeTime(1);
star.decreaseLifeTime(1);
comet.decreaseLifeTime(1);
游戏的每一次迭代我都希望它的生命周期减少 1。我试过这个,但它不起作用:
private ArrayList<SpaceObject> universeEntities;
public void reduceLifeTime() {
for (SpaceObject entity: universeEntities) {
entity.decreaseLifeTime(1);
if(entity.getLifeTime() <= 0) {
erase(entity);
System.out.println("This entity has been erased");
}
System.out.println("life time: " + entity.getLifeTime());
}
}
对象是这样添加的:
planet = new Planet(500, 500, -2, -2, 25, Color.BLUE, this);
universeEntities.add(planet);
【问题讨论】:
-
你有什么问题?
-
erase(entity)行是否改变了universeEntities列表? -
用循环包围它
-
显示你的完整代码,
-
嗯,不是“完整代码”,而是minimal reproducible example