public void enemyEnter(){ if(index%b_planeInterval==0){ BigPlane bPlane=new BigPlane(); enemys=Arrays.copyOf(enemys, enemys.length+1); enemys[enemys.length-1]=bPlane; } if(index%buttet_sInterval==0){ Buttet_supply buttet_supply=new Buttet_supply(); enemys=Arrays.copyOf(enemys, enemys.length+1); enemys[enemys.length-1]=buttet_supply; } if(index%bomb_sInterval==0){ Bomb_supply bomb_supply=new Bomb_supply(); enemys=Arrays.copyOf(enemys, enemys.length+1); enemys[enemys.length-1]=bomb_supply; } if(index%s_planeInterval==0){ SmallPlane sPlane=new SmallPlane(); enemys=Arrays.copyOf(enemys, enemys.length+1); enemys[enemys.length-1]=sPlane; } }请给出其中文注释
时间: 2024-04-21 11:26:40 浏览: 74
这是一个名为 enemyEnter 的方法。在这个方法中,首先判断 index 是否是 b_planeInterval 的倍数,如果是,则创建一个名为 bPlane 的大型飞机对象。然后使用 Arrays.copyOf 方法将敌人数组 enemys 扩展一个元素,并将新创建的 bPlane 对象添加到数组的末尾。接着,判断 index 是否是 buttet_sInterval 的倍数,如果是,则创建一个名为 buttet_supply 的子弹补给对象,同样将其添加到敌人数组 enemys 中。然后判断 index 是否是 bomb_sInterval 的倍数,如果是,则创建一个名为 bomb_supply 的炸弹补给对象,同样将其添加到敌人数组 enemys 中。最后,判断 index 是否是 s_planeInterval 的倍数,如果是,则创建一个名为 sPlane 的小型飞机对象,同样将其添加到敌人数组 enemys 中。
相关问题
public void enemyEnter(){ if(index%b_planeInterval==0){ BigPlane bPlane=new BigPlane(); enemys=Arrays.copyOf(enemys, enemys.length+1); enemys[enemys.length-1]=bPlane; } if(index%buttet_sInterval==0){ Buttet_supply buttet_supply=new Buttet_supply(); enemys=Arrays.copyOf(enemys, enemys.length+1); enemys[enemys.length-1]=buttet_supply; } if(index%bomb_sInterval==0){ Bomb_supply bomb_supply=new Bomb_supply(); enemys=Arrays.copyOf(enemys, enemys.length+1); enemys[enemys.length-1]=bomb_supply; } if(index%s_planeInterval==0){ SmallPlane sPlane=new SmallPlane(); enemys=Arrays.copyOf(enemys, enemys.length+1); enemys[enemys.length-1]=sPlane; } }这段代码什么意思
这段代码是敌机入场的方法,具体含义如下:
- 如果计数器 index 能被 b_planeInterval 整除,就创建一个大型敌机 BigPlane 对象,并将其加入 enemys 数组中
- 如果计数器 index 能被 buttet_sInterval 整除,就创建一个子弹补给 Buttet_supply 对象,并将其加入 enemys 数组中
- 如果计数器 index 能被 bomb_sInterval 整除,就创建一个炸弹补给 Bomb_supply 对象,并将其加入 enemys 数组中
- 如果计数器 index 能被 s_planeInterval 整除,就创建一个小型敌机 SmallPlane 对象,并将其加入 enemys 数组中
这段代码的作用是控制不同种类的敌机和补给物品在不同的时间点出现。
package Shoot; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.FileInputStream; import javax.imageio.ImageIO; public class BigPlane extends Enemy { private static BufferedImage[] images=new BufferedImage[5]; final private static int speed=1; private int image_index=0; static{ for(int i=0;i<images.length;i++){ try{ images[i]=ImageIO.read(new FileInputStream("image\\bigPlane"+i+".png")); }catch(Exception e){ e.printStackTrace(); } } } public BigPlane() { super((int)(Math.random()*(World.frameWidth-images[0].getWidth())), -images[0].getWidth(), images[0].getWidth(), images[0].getHeight()); } public int getAward() { return Award.twoScorePlus; } public void step(){ y+=speed; } public void paint(Graphics g){ if(lifeState==Enemy.alive){ g.drawImage(images[image_index], x, y, null); }else if(lifeState==Enemy.dying&&image_index<images.length-1){ image_index++; g.drawImage(images[image_index], x, y, null); }else{ lifeState=Enemy.dead; } } }
这段代码定义了一个名称为"BigPlane"的类,它继承了"Enemy"类,并实现了"Award"接口。这个类表示一个大型敌机,具有不同的奖励和图片。
该类有一个静态成员变量"images",表示大型敌机的不同状态对应的不同图片。它还有一个静态常量"speed",表示大型敌机的速度。
在静态代码块中,使用循环为"images"数组中的每个元素加载对应的图片。
在构造方法中,随机生成大型敌机的x坐标,并将y坐标设置为图片高度的相反数。
实现"Award"接口中的"getAward()"方法,返回加2分奖励的类型。
实现"step()"方法,表示大型敌机的移动,它的y坐标每次增加"speed"个像素点。
实现"paint()"方法,表示大型敌机的绘制。当大型敌机处于存活状态时,绘制当前状态对应的图片。当大型敌机处于死亡状态时,将生命状态设置为死亡状态。
阅读全文