diff --git a/.settings/.travis.yml b/.settings/.travis.yml new file mode 100644 index 0000000..85c95c0 --- /dev/null +++ b/.settings/.travis.yml @@ -0,0 +1,4 @@ +language: java + +jdk: + - oraclejdk1.8 diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..4fec7ee --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding//src/com/tarena/fly/ShootGame.java=UTF-8 diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..85c95c0 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,4 @@ +language: java + +jdk: + - oraclejdk1.8 diff --git a/bin/.gitignore b/bin/.gitignore new file mode 100644 index 0000000..c2d9872 --- /dev/null +++ b/bin/.gitignore @@ -0,0 +1 @@ +/com/ diff --git a/bin/.travis.yml b/bin/.travis.yml new file mode 100644 index 0000000..85c95c0 --- /dev/null +++ b/bin/.travis.yml @@ -0,0 +1,4 @@ +language: java + +jdk: + - oraclejdk1.8 diff --git a/bin/com/.travis.yml b/bin/com/.travis.yml new file mode 100644 index 0000000..85c95c0 --- /dev/null +++ b/bin/com/.travis.yml @@ -0,0 +1,4 @@ +language: java + +jdk: + - oraclejdk1.8 diff --git a/bin/com/tarena/.travis.yml b/bin/com/tarena/.travis.yml new file mode 100644 index 0000000..85c95c0 --- /dev/null +++ b/bin/com/tarena/.travis.yml @@ -0,0 +1,4 @@ +language: java + +jdk: + - oraclejdk1.8 diff --git a/bin/com/tarena/fly/.travis.yml b/bin/com/tarena/fly/.travis.yml new file mode 100644 index 0000000..85c95c0 --- /dev/null +++ b/bin/com/tarena/fly/.travis.yml @@ -0,0 +1,4 @@ +language: java + +jdk: + - oraclejdk1.8 diff --git a/bin/com/tarena/fly/ShootGame$1.class b/bin/com/tarena/fly/ShootGame$1.class index 7f2ac98..e6ad576 100644 Binary files a/bin/com/tarena/fly/ShootGame$1.class and b/bin/com/tarena/fly/ShootGame$1.class differ diff --git a/bin/com/tarena/fly/ShootGame$2.class b/bin/com/tarena/fly/ShootGame$2.class index e55f670..556efb0 100644 Binary files a/bin/com/tarena/fly/ShootGame$2.class and b/bin/com/tarena/fly/ShootGame$2.class differ diff --git a/bin/com/tarena/fly/ShootGame.class b/bin/com/tarena/fly/ShootGame.class index 1c0a99b..4945366 100644 Binary files a/bin/com/tarena/fly/ShootGame.class and b/bin/com/tarena/fly/ShootGame.class differ diff --git a/build.xml b/build.xml new file mode 100644 index 0000000..e4bfc33 --- /dev/null +++ b/build.xml @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/.travis.yml b/src/.travis.yml new file mode 100644 index 0000000..85c95c0 --- /dev/null +++ b/src/.travis.yml @@ -0,0 +1,4 @@ +language: java + +jdk: + - oraclejdk1.8 diff --git a/src/com/.travis.yml b/src/com/.travis.yml new file mode 100644 index 0000000..85c95c0 --- /dev/null +++ b/src/com/.travis.yml @@ -0,0 +1,4 @@ +language: java + +jdk: + - oraclejdk1.8 diff --git a/src/com/tarena/.travis.yml b/src/com/tarena/.travis.yml new file mode 100644 index 0000000..85c95c0 --- /dev/null +++ b/src/com/tarena/.travis.yml @@ -0,0 +1,4 @@ +language: java + +jdk: + - oraclejdk1.8 diff --git a/src/com/tarena/fly/.travis.yml b/src/com/tarena/fly/.travis.yml new file mode 100644 index 0000000..85c95c0 --- /dev/null +++ b/src/com/tarena/fly/.travis.yml @@ -0,0 +1,4 @@ +language: java + +jdk: + - oraclejdk1.8 diff --git a/src/com/tarena/fly/ShootGame.java b/src/com/tarena/fly/ShootGame.java index 90ee86b..55004ec 100644 --- a/src/com/tarena/fly/ShootGame.java +++ b/src/com/tarena/fly/ShootGame.java @@ -17,18 +17,18 @@ import javax.swing.JPanel; public class ShootGame extends JPanel { - public static final int WIDTH = 400; // 面板宽 - public static final int HEIGHT = 654; // 面板高 - /** 游戏的当前状态: START RUNNING PAUSE GAME_OVER */ + public static final int WIDTH = 400; // 閿熸枻鎷烽敓鏂ゆ嫹 + public static final int HEIGHT = 654; // 閿熸枻鎷烽敓鏂ゆ嫹 + /** 閿熸枻鎷锋垙閿熶茎纰夋嫹鍓嶇姸鎬: START RUNNING PAUSE GAME_OVER */ private int state; private static final int START = 0; private static final int RUNNING = 1; private static final int PAUSE = 2; private static final int GAME_OVER = 3; - private int score = 0; // 得分 - private Timer timer; // 定时器 - private int intervel = 1000 / 100; // 时间间隔(毫秒) + private int score = 0; // 閿熺煫鍑ゆ嫹 + private Timer timer; // 閿熸枻鎷锋椂閿熸枻鎷 + private int intervel = 1000 / 100; // 鏃堕敓鏂ゆ嫹閿熸枻鎷(閿熸枻鎷烽敓鏂ゆ嫹) public static BufferedImage background; public static BufferedImage start; @@ -40,11 +40,12 @@ public class ShootGame extends JPanel { public static BufferedImage pause; public static BufferedImage gameover; - private FlyingObject[] flyings = {}; // 敌机数组 - private Bullet[] bullets = {}; // 子弹数组 - private Hero hero = new Hero(); // 英雄机 + private FlyingObject[] flyings = {}; // 閿熷彨浼欐嫹閿熸枻鎷烽敓鏂ゆ嫹 + private Bullet[] bullets = {}; // 閿熸帴纰夋嫹閿熸枻鎷烽敓鏂ゆ嫹 + private Hero hero = new Hero(); // 鑻遍敓妗斾紮鎷 + - static { // 静态代码块,初始化图片资源 + static { // 閿熸枻鎷锋侀敓鏂ゆ嫹閿熸枻鎷锋顒婃嫹閿熺粸纭锋嫹閿熼叺璁☆剨鎷烽敓鐨嗭拷 try { background = ImageIO.read(ShootGame.class .getResource("background.png")); @@ -53,7 +54,7 @@ public class ShootGame extends JPanel { .read(ShootGame.class.getResource("airplane.png")); bee = ImageIO.read(ShootGame.class.getResource("bee.png")); bullet = ImageIO.read(ShootGame.class.getResource("bullet.png")); - hero0 = ImageIO.read(ShootGame.class.getResource("hero0.png")); + hero0 = ImageIO.read(ShootGame.class.getResource("hero0.png"));//閿熸枻鎷烽敓鏂ゆ嫹閿熷彨杈炬嫹 hero1 = ImageIO.read(ShootGame.class.getResource("hero1.png")); pause = ImageIO.read(ShootGame.class.getResource("pause.png")); gameover = ImageIO @@ -63,23 +64,23 @@ public class ShootGame extends JPanel { } } - /** 画 */ + /** 閿熸枻鎷 */ @Override public void paint(Graphics g) { - g.drawImage(background, 0, 0, null); // 画背景图 - paintHero(g); // 画英雄机 - paintBullets(g); // 画子弹 - paintFlyingObjects(g); // 画飞行物 - paintScore(g); // 画分数 - paintState(g); // 画游戏状态 + g.drawImage(background, 0, 0, null); // 閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷峰浘 + paintHero(g); // 閿熸枻鎷疯嫳閿熸浼欐嫹 + paintBullets(g); // 閿熸枻鎷烽敓鎺ョ鎷 + paintFlyingObjects(g); // 閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹 + paintScore(g); // 閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷 + paintState(g); // 閿熸枻鎷烽敓鏂ゆ嫹鎴忕姸鎬 } - /** 画英雄机 */ + /** 閿熸枻鎷疯嫳閿熸浼欐嫹 */ public void paintHero(Graphics g) { g.drawImage(hero.getImage(), hero.getX(), hero.getY(), null); } - /** 画子弹 */ + /** 閿熸枻鎷烽敓鎺ョ鎷 */ public void paintBullets(Graphics g) { for (int i = 0; i < bullets.length; i++) { Bullet b = bullets[i]; @@ -88,7 +89,7 @@ public void paintBullets(Graphics g) { } } - /** 画飞行物 */ + /** 閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹 */ public void paintFlyingObjects(Graphics g) { for (int i = 0; i < flyings.length; i++) { FlyingObject f = flyings[i]; @@ -96,54 +97,60 @@ public void paintFlyingObjects(Graphics g) { } } - /** 画分数 */ + /** 閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷 */ public void paintScore(Graphics g) { - int x = 10; // x坐标 - int y = 25; // y坐标 - Font font = new Font(Font.SANS_SERIF, Font.BOLD, 22); // 字体 + int x = 10; // x閿熸枻鎷烽敓鏂ゆ嫹 + int y = 25; // y閿熸枻鎷烽敓鏂ゆ嫹 + Font font = new Font(Font.SANS_SERIF, Font.BOLD, 22); // 閿熸枻鎷烽敓鏂ゆ嫹 g.setColor(new Color(0xFF0000)); - g.setFont(font); // 设置字体 - g.drawString("SCORE:" + score, x, y); // 画分数 - y=y+20; // y坐标增20 - g.drawString("LIFE:" + hero.getLife(), x, y); // 画命 + g.setFont(font); // 閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹 + g.drawString("SCORE:" + score, x, y); // 閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷 + y=y+20; // y閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷20 + g.drawString("LIFE:" + hero.getLife(), x, y); // 閿熸枻鎷烽敓鏂ゆ嫹 } - /** 画游戏状态 */ + /** 閿熸枻鎷烽敓鏂ゆ嫹鎴忕姸鎬 */ public void paintState(Graphics g) { switch (state) { - case START: // 启动状态 + case START: // 閿熸枻鎷烽敓鏂ゆ嫹鐘舵 g.drawImage(start, 0, 0, null); break; - case PAUSE: // 暂停状态 + case PAUSE: // 閿熸枻鎷峰仠鐘舵 g.drawImage(pause, 0, 0, null); break; - case GAME_OVER: // 游戏终止状态 + case GAME_OVER: // 閿熸枻鎷锋垙閿熸枻鎷锋鐘舵 g.drawImage(gameover, 0, 0, null); break; } } public static void main(String[] args) { + int modify = 1; + String str = "2"; + if(str.equals("0")) + { + System.out.println("str"); + } JFrame frame = new JFrame("Fly"); - ShootGame game = new ShootGame(); // 面板对象 - frame.add(game); // 将面板添加到JFrame中 - frame.setSize(WIDTH, HEIGHT); // 设置大小 - frame.setAlwaysOnTop(true); // 设置其总在最上 - frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 默认关闭操作 - frame.setIconImage(new ImageIcon("images/icon.jpg").getImage()); // 设置窗体的图标 - frame.setLocationRelativeTo(null); // 设置窗体初始位置 - frame.setVisible(true); // 尽快调用paint - - game.action(); // 启动执行 + ShootGame game = new ShootGame(); // 閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷 + frame.add(game); // 閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓鎺ョ鎷稪Frame閿熸枻鎷 + frame.setSize(WIDTH, HEIGHT); // 閿熸枻鎷烽敓鐭揪鎷峰皬 + frame.setAlwaysOnTop(true); // 閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷 + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 榛橀敓杈冨叧闂鎷烽敓鏂ゆ嫹 + frame.setIconImage(new ImageIcon("images/icon.jpg").getImage()); // 閿熸枻鎷烽敓鐭揪鎷烽敓鏂ゆ嫹閿熼叺纭锋嫹閿燂拷 + frame.setLocationRelativeTo(null); // 閿熸枻鎷烽敓鐭揪鎷烽敓鏂ゆ嫹閿熺粸鍢変紮鎷烽敓锟 + frame.setVisible(true); // 閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓绲int + + game.action(); // 閿熸枻鎷烽敓鏂ゆ嫹鎵ч敓鏂ゆ嫹 } - /** 启动执行代码 */ + /** 閿熸枻鎷烽敓鏂ゆ嫹鎵ч敓鍙揪鎷烽敓鏂ゆ嫹 */ public void action() { - // 鼠标监听事件 + // 閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓閾扮》鎷 MouseAdapter l = new MouseAdapter() { @Override - public void mouseMoved(MouseEvent e) { // 鼠标移动 - if (state == RUNNING) { // 运行状态下移动英雄机--随鼠标位置 + public void mouseMoved(MouseEvent e) { // 閿熸枻鎷烽敓鏂ゆ嫹璐敓锟 + if (state == RUNNING) { // 閿熸枻鎷烽敓鏂ゆ嫹鐘舵侀敓鏂ゆ嫹閿熺嫛璁规嫹鑻遍敓妗斾紮鎷--閿熸枻鎷烽敓鏂ゆ嫹閿熻娇浼欐嫹閿燂拷 int x = e.getX(); int y = e.getY(); hero.moveTo(x, y); @@ -151,83 +158,83 @@ public void mouseMoved(MouseEvent e) { // } @Override - public void mouseEntered(MouseEvent e) { // 鼠标进入 - if (state == PAUSE) { // 暂停状态下运行 + public void mouseEntered(MouseEvent e) { // 閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷 + if (state == PAUSE) { // 閿熸枻鎷峰仠鐘舵侀敓鏂ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹 state = RUNNING; } } @Override - public void mouseExited(MouseEvent e) { // 鼠标退出 - if (state == RUNNING) { // 游戏未结束,则设置其为暂停 + public void mouseExited(MouseEvent e) { // 閿熸枻鎷烽敓鏂ゆ嫹椤洪敓锟 + if (state == RUNNING) { // 閿熸枻鎷锋垙鏈敓鏂ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹涓洪敓鏂ゆ嫹鍋 state = PAUSE; } } @Override - public void mouseClicked(MouseEvent e) { // 鼠标点击 + public void mouseClicked(MouseEvent e) { // 閿熸枻鎷烽敓鏂ゆ嫹閿燂拷 switch (state) { case START: - state = RUNNING; // 启动状态下运行 + state = RUNNING; // 閿熸枻鎷烽敓鏂ゆ嫹鐘舵侀敓鏂ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹 break; - case GAME_OVER: // 游戏结束,清理现场 - flyings = new FlyingObject[0]; // 清空飞行物 - bullets = new Bullet[0]; // 清空子弹 - hero = new Hero(); // 重新创建英雄机 - score = 0; // 清空成绩 - state = START; // 状态设置为启动 + case GAME_OVER: // 閿熸枻鎷锋垙閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓琛楃鎷 + flyings = new FlyingObject[0]; // 閿熸枻鎷疯緱閿熸枻鎷烽敓鏂ゆ嫹閿燂拷 + bullets = new Bullet[0]; // 閿熸枻鎷烽敓鏂ゆ嫹鎷ラ敓锟 + hero = new Hero(); // 閿熸枻鎷烽敓閾拌揪鎷烽敓鏂ゆ嫹鑻遍敓妗斾紮鎷 + score = 0; // 閿熸枻鎷风矘鏉夐敓锟 + state = START; // 鐘舵侀敓鏂ゆ嫹閿熸枻鎷蜂负閿熸枻鎷烽敓鏂ゆ嫹 break; } } }; - this.addMouseListener(l); // 处理鼠标点击操作 - this.addMouseMotionListener(l); // 处理鼠标滑动操作 + this.addMouseListener(l); // 閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹閿燂拷 + this.addMouseMotionListener(l); // 閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷锋槉顒婃嫹閿熸枻鎷烽敓鏂ゆ嫹閿燂拷 - timer = new Timer(); // 主流程控制 + timer = new Timer(); // 閿熸枻鎷烽敓鏂ゆ嫹閿熸暀鍖℃嫹閿熸枻鎷 timer.schedule(new TimerTask() { @Override public void run() { - if (state == RUNNING) { // 运行状态 - enterAction(); // 飞行物入场 - stepAction(); // 走一步 - shootAction(); // 英雄机射击 - bangAction(); // 子弹打飞行物 - outOfBoundsAction(); // 删除越界飞行物及子弹 - checkGameOverAction(); // 检查游戏结束 + if (state == RUNNING) { // 閿熸枻鎷烽敓鏂ゆ嫹鐘舵 + enterAction(); // 閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓璇満 + stepAction(); // 閿熸枻鎷蜂竴閿熸枻鎷 + shootAction(); // 鑻遍敓妗斾紮鎷烽敓鏂ゆ嫹閿燂拷 + bangAction(); // 閿熸帴纰夋嫹閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓锟 + outOfBoundsAction(); // 鍒犻敓鏂ゆ嫹瓒婇敓鏂ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹閿涘府鎷锋嫢閿燂拷 + checkGameOverAction(); // 閿熸枻鎷烽敓鏂ゆ嫹閿熻緝鍑ゆ嫹閿熸枻鎷烽敓锟 } - repaint(); // 重绘,调用paint()方法 + repaint(); // 閿熸埅缁橈紝閿熸枻鎷烽敓鏂ゆ嫹paint()閿熸枻鎷烽敓鏂ゆ嫹 } }, intervel, intervel); } - int flyEnteredIndex = 0; // 飞行物入场计数 + int flyEnteredIndex = 0; // 閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓璇満閿熸枻鎷烽敓鏂ゆ嫹 - /** 飞行物入场 */ + /** 閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓璇満 */ public void enterAction() { flyEnteredIndex++; - if (flyEnteredIndex % 40 == 0) { // 400毫秒生成一个飞行物--10*40 - FlyingObject obj = nextOne(); // 随机生成一个飞行物 + if (flyEnteredIndex % 40 == 0) { // 400閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹涓閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹--10*40 + FlyingObject obj = nextOne(); // 閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓鎻紮鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹閿燂拷 flyings = Arrays.copyOf(flyings, flyings.length + 1); flyings[flyings.length - 1] = obj; } } - /** 走一步 */ + /** 閿熸枻鎷蜂竴閿熸枻鎷 */ public void stepAction() { - for (int i = 0; i < flyings.length; i++) { // 飞行物走一步 + for (int i = 0; i < flyings.length; i++) { // 閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹涓閿熸枻鎷 FlyingObject f = flyings[i]; f.step(); } - for (int i = 0; i < bullets.length; i++) { // 子弹走一步 + for (int i = 0; i < bullets.length; i++) { // 閿熸帴纰夋嫹閿熸枻鎷蜂竴閿熸枻鎷 Bullet b = bullets[i]; b.step(); } - hero.step(); // 英雄机走一步 + hero.step(); // 鑻遍敓妗斾紮鎷烽敓鏂ゆ嫹涓閿熸枻鎷 } - /** 飞行物走一步 */ + /** 閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹涓閿熸枻鎷 */ public void flyingStepAction() { for (int i = 0; i < flyings.length; i++) { FlyingObject f = flyings[i]; @@ -235,40 +242,40 @@ public void flyingStepAction() { } } - int shootIndex = 0; // 射击计数 + int shootIndex = 0; // 閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓锟 - /** 射击 */ + /** 閿熸枻鎷烽敓锟 */ public void shootAction() { shootIndex++; - if (shootIndex % 30 == 0) { // 300毫秒发一颗 - Bullet[] bs = hero.shoot(); // 英雄打出子弹 - bullets = Arrays.copyOf(bullets, bullets.length + bs.length); // 扩容 + if (shootIndex % 30 == 0) { // 300閿熸枻鎷烽敓璇彂涓閿熸枻鎷 + Bullet[] bs = hero.shoot(); // 鑻遍敓妗旇揪鎷烽敓鏂ゆ嫹鎷ラ敓锟 + bullets = Arrays.copyOf(bullets, bullets.length + bs.length); // 閿熸枻鎷烽敓鏂ゆ嫹 System.arraycopy(bs, 0, bullets, bullets.length - bs.length, - bs.length); // 追加数组 + bs.length); // 杩介敓鏂ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹 } } - /** 子弹与飞行物碰撞检测 */ + /** 閿熸帴纰夋嫹閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹閿熼樁璇ф嫹閿熸枻鎷 */ public void bangAction() { - for (int i = 0; i < bullets.length; i++) { // 遍历所有子弹 + for (int i = 0; i < bullets.length; i++) { // 閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹閿熸帴纰夋嫹 Bullet b = bullets[i]; - bang(b); // 子弹和飞行物之间的碰撞检查 + bang(b); // 閿熸帴纰夋嫹閿熼叺鍑ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹涔嬮敓鏂ゆ嫹閿熸枻鎷烽敓闃惰鎷烽敓鏂ゆ嫹 } } - /** 删除越界飞行物及子弹 */ + /** 鍒犻敓鏂ゆ嫹瓒婇敓鏂ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹閿涘府鎷锋嫢閿燂拷 */ public void outOfBoundsAction() { - int index = 0; // 索引 - FlyingObject[] flyingLives = new FlyingObject[flyings.length]; // 活着的飞行物 + int index = 0; // 閿熸枻鎷烽敓鏂ゆ嫹 + FlyingObject[] flyingLives = new FlyingObject[flyings.length]; // 閿熸枻鎷烽敓鑴氱殑鍑ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹 for (int i = 0; i < flyings.length; i++) { FlyingObject f = flyings[i]; if (!f.outOfBounds()) { - flyingLives[index++] = f; // 不越界的留着 + flyingLives[index++] = f; // 閿熸枻鎷疯秺閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓锟 } } - flyings = Arrays.copyOf(flyingLives, index); // 将不越界的飞行物都留着 + flyings = Arrays.copyOf(flyingLives, index); // 閿熸枻鎷烽敓鏂ゆ嫹瓒婇敓鏂ゆ嫹濮嗛敓鏂ゆ嫹閿熸枻鎷烽敀纭锋嫹閿熸枻鎷烽敓锟 - index = 0; // 索引重置为0 + index = 0; // 閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹涓0 Bullet[] bulletLives = new Bullet[bullets.length]; for (int i = 0; i < bullets.length; i++) { Bullet b = bullets[i]; @@ -276,71 +283,71 @@ public void outOfBoundsAction() { bulletLives[index++] = b; } } - bullets = Arrays.copyOf(bulletLives, index); // 将不越界的子弹留着 + bullets = Arrays.copyOf(bulletLives, index); // 閿熸枻鎷烽敓鏂ゆ嫹瓒婇敓鏂ゆ嫹閿熸枻鎷锋嫢閿熸枻鎷烽敓鏂ゆ嫹閿燂拷 } - /** 检查游戏结束 */ + /** 閿熸枻鎷烽敓鏂ゆ嫹閿熻緝鍑ゆ嫹閿熸枻鎷烽敓锟 */ public void checkGameOverAction() { if (isGameOver()==true) { - state = GAME_OVER; // 改变状态 + state = GAME_OVER; // 閿熶茎鎲嬫嫹鐘舵 } } - /** 检查游戏是否结束 */ + /** 閿熸枻鎷烽敓鏂ゆ嫹閿熻緝鍑ゆ嫹娆犻敓鏂ゆ嫹閿熸枻鎷 */ public boolean isGameOver() { for (int i = 0; i < flyings.length; i++) { int index = -1; FlyingObject obj = flyings[i]; - if (hero.hit(obj)) { // 检查英雄机与飞行物是否碰撞 - hero.subtractLife(); // 减命 - hero.setDoubleFire(0); // 双倍火力解除 - index = i; // 记录碰上的飞行物索引 + if (hero.hit(obj)) { // 閿熸枻鎷烽敓鎺ヮ澁鎷峰垗閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹閿熻鍑ゆ嫹閿熸枻鎷锋挒 + hero.subtractLife(); // 閿熸枻鎷烽敓鏂ゆ嫹 + hero.setDoubleFire(0); // 鍙岄敓鏂ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓锟 + index = i; // 閿熸枻鎷峰綍閿熸枻鎷烽敓杈冪殑鍑ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹 } if (index != -1) { FlyingObject t = flyings[index]; flyings[index] = flyings[flyings.length - 1]; - flyings[flyings.length - 1] = t; // 碰上的与最后一个飞行物交换 + flyings[flyings.length - 1] = t; // 閿熸枻鎷烽敓杈冪鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓鎻紮鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹閿濅紮鎷烽敓锟 - flyings = Arrays.copyOf(flyings, flyings.length - 1); // 删除碰上的飞行物 + flyings = Arrays.copyOf(flyings, flyings.length - 1); // 鍒犻敓鏂ゆ嫹閿熸枻鎷烽敓杈冪殑鍑ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹 } } return hero.getLife() <= 0; } - /** 子弹和飞行物之间的碰撞检查 */ + /** 閿熸帴纰夋嫹閿熼叺鍑ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹涔嬮敓鏂ゆ嫹閿熸枻鎷烽敓闃惰鎷烽敓鏂ゆ嫹 */ public void bang(Bullet bullet) { - int index = -1; // 击中的飞行物索引 + int index = -1; // 閿熸枻鎷烽敓鍙殑鍑ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹 for (int i = 0; i < flyings.length; i++) { FlyingObject obj = flyings[i]; - if (obj.shootBy(bullet)) { // 判断是否击中 - index = i; // 记录被击中的飞行物的索引 + if (obj.shootBy(bullet)) { // 閿熷彨璁规嫹閿熻鍑ゆ嫹閿熸枻鎷烽敓锟 + index = i; // 閿熸枻鎷峰綍閿熸枻鎷烽敓鏂ゆ嫹閿熷彨鐨勫嚖鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓锟 break; } } - if (index != -1) { // 有击中的飞行物 - FlyingObject one = flyings[index]; // 记录被击中的飞行物 + if (index != -1) { // 閿熷彨浼欐嫹閿熷彨鐨勫嚖鎷烽敓鏂ゆ嫹閿熸枻鎷 + FlyingObject one = flyings[index]; // 閿熸枻鎷峰綍閿熸枻鎷烽敓鏂ゆ嫹閿熷彨鐨勫嚖鎷烽敓鏂ゆ嫹閿熸枻鎷 - FlyingObject temp = flyings[index]; // 被击中的飞行物与最后一个飞行物交换 + FlyingObject temp = flyings[index]; // 閿熸枻鎷烽敓鏂ゆ嫹閿熷彨鐨勫嚖鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓鎻紮鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹閿濅紮鎷烽敓锟 flyings[index] = flyings[flyings.length - 1]; flyings[flyings.length - 1] = temp; - flyings = Arrays.copyOf(flyings, flyings.length - 1); // 删除最后一个飞行物(即被击中的) + flyings = Arrays.copyOf(flyings, flyings.length - 1); // 鍒犻敓鏂ゆ嫹閿熸枻鎷烽敓鎻紮鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹閿燂拷(閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓鍙鎷) - // 检查one的类型(敌人加分,奖励获取) - if (one instanceof Enemy) { // 检查类型,是敌人,则加分 - Enemy e = (Enemy) one; // 强制类型转换 - score += e.getScore(); // 加分 - } else { // 若为奖励,设置奖励 + // 閿熸枻鎷烽敓绲e閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷(閿熸枻鎷烽敓鍓垮姞鍒嗭綇鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹鍙) + if (one instanceof Enemy) { // 閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷峰仠閿熸枻鎷峰爲閿熸枻鎷疯嶉敓鏂ゆ嫹閿熸帴鍑ゆ嫹 + Enemy e = (Enemy) one; // 寮洪敓鏂ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹杞敓鏂ゆ嫹 + score += e.getScore(); // 閿熸帴鍑ゆ嫹 + } else { // 閿熸枻鎷蜂负閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹閿熺煫鏂ゆ嫹閿熸枻鎷 Award a = (Award) one; - int type = a.getType(); // 获取奖励类型 + int type = a.getType(); // 閿熸枻鎷峰彇閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹 switch (type) { case Award.DOUBLE_FIRE: - hero.addDoubleFire(); // 设置双倍火力 + hero.addDoubleFire(); // 閿熸枻鎷烽敓鏂ゆ嫹鍙岄敓鏂ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹 break; case Award.LIFE: - hero.addLife(); // 设置加命 + hero.addLife(); // 閿熸枻鎷烽敓鐭》鎷烽敓鏂ゆ嫹 break; } } @@ -348,9 +355,9 @@ public void bang(Bullet bullet) { } /** - * 随机生成飞行物 + * 閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷风厼閿熸枻鎷烽敓鏂ゆ嫹閿燂拷 * - * @return 飞行物对象 + * @return 閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹閿燂拷 */ public static FlyingObject nextOne() { Random random = new Random();