public void outOfBounds(){ for(int i=0;i<enemys.length;i++){ if(enemys[i].outOfBounds(0, 0, frameWidth, frameheight)){ hero.life--; enemys[i]=enemys[enemys.length-1]; enemys=Arrays.copyOf(enemys, enemys.length-1); i--; } } for(int i=0;i<flyingObjects.length;i++){ if(flyingObjects[i].outOfBounds(0, 0, frameWidth, frameheight)){ flyingObjects[i]=flyingObjects[flyingObjects.length-1]; flyingObjects=Arrays.copyOf(flyingObjects, flyingObjects.length-1); i--; } } }
时间: 2023-07-14 19:56:02 浏览: 142
java中for(int i= 0; i<=10;i=i++)System.out.print(i);为什么无限输出0
这段代码是什么意思?
这段代码是一个方法,名为 `outOfBounds()`,用于处理游戏中的敌人和飞行物体是否超出边界的问题。首先,它遍历了 `enemys` 数组和 `flyingObjects` 数组中的所有对象,如果某个对象超出了屏幕边界,就执行以下操作:
1. 英雄的生命值减1;
2. 将该对象替换为数组中最后一个对象;
3. 将数组长度减1;
4. 因为替换了当前对象,所以需要将当前索引 `i` 减1,以便下一轮循环仍然检查当前位置。
简单来说,这段代码是用于清除超出屏幕边界的敌人和飞行物体,并对英雄的生命值做出相应的处理。
阅读全文