小编典典

每500帧从ArrayList中移除元素

java

我有这个arraylist:

// Add predators
predators = new ArrayList();
for (int i = 0; i < predNum; i++) {
  Creature predator = new Creature(random(width), random(height), 2);
  predators.add(predator);
}

如何构造语句,以便predators每500帧删除arraylist 中的最后一个元素?是否需要某种循环?

if (frameCount == 500){
 predators.remove(1)
}

阅读 224

收藏
2020-10-18

共1个答案

小编典典

如果您已经有了一个变量,可以跟踪您所处的帧,则可以使用以下if语句:

if (frameCount % 500 == 0) {
   predators.remove(1); //use this if you want to remove whatever is at index 1 every 500 frames
   predators.remove(predators.size() -1); //use this if you want to remove the last item in the ArrayList
}

由于您将其用作1ArrayList的remove方法的参数,因此我也这样做了,但请注意,由于arrayList索引从0开始计数,因此它将始终删除arrayList中的第二个对象。

仅在帧数是500的倍数时才运行。

如果尚未跟踪frameCount,则必须放入frameCount++每个帧执行的循环。

2020-10-18