当前位置: 首页 > 知识库问答 >
问题:

Arraylist庞游戏,箭头类

昌乐
2023-03-14
bubblesArray.get(i).move();
bubblesArray.get(i).checkBorders();
bubblesArray.get(i).display();

if (bubblesArray.get(i).checkHit(p)) {
}

for (int j = 0; j < arrowArray.size(); j++) {

  arrowArray.get(j).shoot();
  arrowArray.get(j).display();

  // verwijderd array wanneer die buiten scherm komt

    if (arrowArray.get(j).getPosYArrow()+arrowArray.get(j).getHeightArrow() < 0) {
      arrowArray.remove(j);

  }

  // verwijder array wanneer die tegen bubble zit

  if (bubblesArray.get(i).checkHitArrow(arrowArray.get(j))) {
    timesHit+=1;
    numberOfBubble*=2;

   if(arrowArray.size()>=0){
    arrowArray.remove(j);
   }
    // aanmaken nieuwe bubble
    bubbleWidth = bubble.width/2;
    bubbleHeight = bubble.height/2;
    bubble.resize(bubbleWidth, bubbleHeight);

    for ( int k = 0; k < numberOfBubble; k++) {

      bubblesArray.add(new Bubbles(bubblesArray.get(i).getPosXBubbles(), bubblesArray.get(i).getPosYBubbles(), bubble));
    }
    bubblesArray.remove(i);
  }
}
arrowArray.add(new Arrow(arrow, p.getPosXPlayer()+p.getWidthPlayer()/2, p.getPosYPlayer()));
printArray(arrowArray);

共有1个答案

仉嘉泽
2023-03-14

在迭代数组时调用remove from array。

arrowArray.remove(j);

因此它将抛出ConcCurrentModificationException。如果要在迭代列表时删除,请不要使用foreach。让我们使用迭代器。

Iterator<YourObject> iterator = arrowArray.iterator();
while(iterator.hasNext()) {
 YourObject obj = iterator.next();
 // Test with obj
 if (your conjdition) {
       iterator.remove();//It's safe
 }
}

使用您的bubblesarray.remove(i);

 类似资料:
  • 我正在使用LibGdx的java游戏,我需要你的帮助。 说明:箭头键有一个问题。让我先解释一下我的代码是如何工作的。所以在我的更新方法中,我检查是否按下了键。如果是的话,我来处理。问题是我的代码一个接一个地检查。因此,它检查的第一个箭头键优先于所有其他箭头键,因为如果按下它,它将首先被调用。前任: 顺便说一下,我的游戏是瓷砖基地。当玩家移动完1个图块后,它会再次检查箭头键输入,看看下一步需要朝哪个

  • 这似乎是一个非常基本的问题,但我有一个模型(用户),我想存储一个字符串的ArrayList(它们是其他用户的ID)。我这样声明列表: 控制器方法: 和一个非常简单的观点:

  • 本文向大家介绍Swift箭头,包括了Swift箭头的使用技巧和注意事项,需要的朋友参考一下 示例 Arrow是Swift中一个优雅的JSON解析库。 它允许在<--运算符的帮助下解析JSON并将其映射到自定义模型类: 示例 斯威夫特模型 JSON文件 制图 用法 安装: 迦太基 可可豆 手动地 只需复制并粘贴Arrow.swift到您的Xcode项目中 https://github.com/s4c

  • gtk.Arrow对象用于绘制指向四个基本方向的简单箭头。 此类继承自gtk.Misc类,该对象将占用分配它的任何空间,例如Label或Button小部件。 通常,使用以下构造函数创建Arrow对象 - Arr = gtk.Arrow(arrow_type, shadow_type) 预定义的arrow_type常量是 - gtk.ARROW_UP gtk.ARROW_DOWN gtk.ARRO

  • 项目设置:Intellj- 我正在尝试启动并运行我的数据库。我可以单击“立即应用此脚本”按钮。 单击后,应用程序将正常启动。但当我查看默认DB和公共模式时,什么都没有。 我正在使用Intellj的集成DB工具打开DB。 该项目在GitHub上(如果更好,我也可以发布重要文件) 当我直接从控制台运行脚本时,它可以按预期工作。 如何以及在哪里可以检查脚本是否已执行以及在哪里执行?

  • 我的任务是编写一个程序,让用户对着电脑玩石头、纸、剪刀的游戏。 说明: 主方法应该有两个嵌套的循环,其中外循环将允许用户根据需要经常玩游戏,内循环将玩游戏,只要有一个平局。在userChoice()方法的while循环中调用方法isValidChoice()来验证用户输入的选项必须是“Rock”、“Paper”或“Scissors”。如果输入了无效的字符串,isValidChoice()将返回fa