java - 在迭代游戏对象时将其添加到列表中

标签 java libgdx

我需要将游戏对象添加到列表中。在此private ArrayList<GameObject> list;列表 我保存了所有游戏数据(敌人、方 block 、砖 block 等等...)。这是我的做法

for(GameObject t : list){
    if(Enemy.count < 20){
        list.add(new Enemy(100, 100, true));
    }
}

我得到了这个异常

Exception in thread "LWJGL Application" java.util.ConcurrentModificationException
    at java.util.ArrayList$Itr.checkForComodification(Unknown Source)
    at java.util.ArrayList$Itr.next(Unknown Source)

最佳答案

另一个解决方案是暂时使用另一个列表:

List<GameObject> toAdd = new ArrayList<>();
for(GameObject t : list){
  if(Enemy.count < 20){
    toAdd.add(new Enemy(100, 100, true));
  }
}
list.addAll(toAdd);

关于java - 在迭代游戏对象时将其添加到列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29029826/

相关文章:

java - 网络逻辑 12c : Prefer-web-inf-classes and prefer-application-packages for Jersey

java - JSP 片段中的未知标记和未定义函数

java - @Repository dao 中的 Spring @PostConstruct 和扩展 dao 的 @Service

java - 如何将 Actor 放在彼此之上?

java - LibGDX/Box2D UnsatisfiedLinkError

java - 将数据从 Android Activity 发送到 Web 表单

安装了 Java SE 7,但不支持开关中的字符串

java libgdx 移动透视相机

ios - 为 iOS : Native linking failed 编译一个 libGDX 项目

Java SourceDataLine 未在第一个缓冲区结束时调用更新