guyanqing 10 luni în urmă
părinte
comite
f0c19f3d55

+ 26 - 0
src/main/java/com/sf/day05/T.java

@@ -0,0 +1,26 @@
+package com.sf.day05;
+
+import org.junit.jupiter.api.Test;
+
+import javax.swing.*;
+import java.util.Arrays;
+
+/**
+ * Arrays工具类的使用
+ */
+public class T {
+    @Test
+    public void t1(){
+        int[] arr = new int[]{6,5,3,2,1};
+        String s = Arrays.toString(arr);
+        System.out.println(s);
+        Arrays.sort(arr,2,5);
+        Arrays.sort(arr);
+        System.out.println(Arrays.toString(arr));
+
+        // 二分查找
+        int index = Arrays.binarySearch(arr, 15);
+        System.out.println(index);
+
+    }
+}

+ 131 - 7
src/main/java/com/sf/game/GameWin.java

@@ -1,11 +1,16 @@
 package com.sf.game;
 
-import com.sf.game.obj.BgObj;
-import com.sf.game.obj.PlaneObj;
+import com.sf.game.obj.*;
 import com.sf.game.utils.GameUtils;
+import org.omg.IOP.TaggedComponentHelper;
 
 import javax.swing.*;
 import java.awt.*;
+import java.awt.event.KeyAdapter;
+import java.awt.event.KeyEvent;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.security.PublicKey;
 
 //启动类
 public class GameWin extends JFrame {
@@ -21,13 +26,16 @@ public class GameWin extends JFrame {
     //记录游戏绘画的次数
     int count = 1;
 
-
-
-
-
+    //先创建小飞机1的对象
+    LittleBoss1 littleBoss1 = new LittleBoss1(GameUtils.littleboss1Img,172,112,-200,350,3,this);
+    //先创建小飞机2的对象
+    LittleBoss2 littleBoss2 = new LittleBoss2(GameUtils.littleboss2Img,172,112,300,-150,2,this);
+    //敌方飞机
+    BossObj bossObj = new BossObj(GameUtils.bossImg,240,172,180,-180,3,this);
+    //获取警告对象
+    WaringObj waringObj = new WaringObj(GameUtils.warningImg,599,90,0,350,0,this);
     //定一个变量来存储分数
     public static int score = 0;
-
     //我方飞机的下标
     public static int planeindex = 0;
     public void launch(){
@@ -45,8 +53,124 @@ public class GameWin extends JFrame {
         GameUtils.gameObjList.add(bgObj);
         GameUtils.gameObjList.add(planeObj);
         planeindex= GameUtils.gameObjList.indexOf(planeObj);  //获取我放飞机的下标
+
+        //添加鼠标的点击事件
+        this.addMouseListener(new MouseAdapter() {
+            @Override
+            public void mouseClicked(MouseEvent e) {
+              if(e.getButton() == 1 && state == 0){
+                  state = 1;//游戏已经开始
+              }
+            }
+        });
+
+        // 添加键盘监听事件
+        this.addKeyListener(new KeyAdapter() {
+            @Override
+            public void keyPressed(KeyEvent e) {
+              if(e.getKeyCode() == 32){
+                  if(state == 1){
+                      state = 2;
+                  }else if(state == 2){
+                      state = 1;
+                  }
+              }
+            }
+        });
+
+        while (true){
+            createObj();
+        }
+
+
+
     }
 
+    private void createObj() {
+        //产生子弹  并且需要控制子弹的速度
+        if(count % 15 ==0){
+            if(planeObj.times ==0){   //产生一级子弹
+                GameUtils.shellObjList.add(new ShellObj(GameUtils.shellImg,14,29,planeObj.getX()+12,
+                        planeObj.getY() - 20,5,this));
+                GameUtils.gameObjList.add(GameUtils.shellObjList.get(GameUtils.shellObjList.size() - 1));
+            }
+            if(planeObj.times ==1) {   //产生二级子弹
+                GameUtils.doubleShellObjList.add(new DoubleShellObj(GameUtils.doubleShellImg,32,64,planeObj.getX()+5,planeObj.getY()-20,8,this));
+                GameUtils.gameObjList.add(GameUtils.doubleShellObjList.get(GameUtils.doubleShellObjList.size()-1));
+            }
+            if(planeObj.times ==2){   //产生三级子弹
+                GameUtils.tripleShellObjList.add(new TripleShellObj(GameUtils.tripleShellImg,64,182,planeObj.getX()-5,planeObj.getY()-100,15,this));
+                GameUtils.gameObjList.add(GameUtils.tripleShellObjList.get(GameUtils.tripleShellObjList.size()-1));
+            }
+        }
+
+        // 构建两种敌方飞机
+        if(count % 15 ==0){   //控制地方飞机的产生速度
+            GameUtils.enemy1ObjList.add(new Enemy1Obj(GameUtils.enemy1Img,32,24,(int)((Math.random()*10)*60),0,5,this));
+            GameUtils.gameObjList.add(GameUtils.enemy1ObjList.get(GameUtils.enemy1ObjList.size()-1));
+        }
+        if(count % 20 ==0) { //控制地方飞机的产生速度
+            if(count % 100 ==0){
+                GameUtils.enemy2ObjList.add(new Enemy2Obj(GameUtils.enemy2Img,44,67,(int)((Math.random()*10)*60),0,2,this));
+                GameUtils.gameObjList.add(GameUtils.enemy2ObjList.get(GameUtils.enemy2ObjList.size()-1));
+            }
+            if(GameUtils.enemy2ObjList.size() > 0){
+                int x  = (GameUtils.enemy2ObjList.get(GameUtils.enemy2ObjList.size()-1)).getX();
+                int y  = (GameUtils.enemy2ObjList.get(GameUtils.enemy2ObjList.size()-1)).getY();
+                GameUtils.enemy2BulletObjList.add(new Enemy2BulletObj(GameUtils.enemy2bulletImg,14,25,x+17,y+=15,5,this));
+                GameUtils.gameObjList.add(GameUtils.enemy2BulletObjList.get(GameUtils.enemy2BulletObjList.size() -1));
+            }
+        }
+
+        if(count==600 && (!GameUtils.gameObjList.contains(littleBoss2))){
+            GameUtils.gameObjList.add(littleBoss2);
+        }
+        if(count==800 && (!GameUtils.gameObjList.contains(littleBoss1))){
+            GameUtils.gameObjList.add(littleBoss1);
+        }
+
+        if(count % 15 == 0){
+            if(GameUtils.gameObjList.contains(littleBoss1)){
+                GameUtils.littleBoss1BulletList.add(new LittleBoss1Bullet(GameUtils.littleBoss1BulletImg,42,42,littleBoss1.getX()+75,littleBoss1.getY()+100,4, this));
+                GameUtils.gameObjList.add(GameUtils.littleBoss1BulletList.get(GameUtils.littleBoss1BulletList.size()-1));
+            }
+        }
+
+        if(count % 40 == 0) {
+            if(GameUtils.gameObjList.contains(littleBoss2)){
+                GameUtils.littleBoss2BulletList.add(new LittleBoss2Bullet(GameUtils.littleBoss2BulletImg,21,59,littleBoss2.getX()+78,littleBoss2.getY()+100,8,this));
+                GameUtils.gameObjList.add(GameUtils.littleBoss2BulletList.get(GameUtils.littleBoss2BulletList.size()-1));
+            }
+        }
+
+        if(count == 1300 && (!GameUtils.gameObjList.contains(bossObj))){
+            GameUtils.gameObjList.add(bossObj);
+        }
+
+        if(count % 20 ==0){
+            if(GameUtils.gameObjList.contains(bossObj)){
+                //这是地方一号子弹
+                GameUtils.littleBoss1BulletList.add(new LittleBoss1Bullet(GameUtils.littleBoss1BulletImg,42,42,bossObj.getX()+10,bossObj.getY()+130,6,this));
+                GameUtils.gameObjList.add(GameUtils.littleBoss1BulletList.get(GameUtils.littleBoss1BulletList.size()-1));
+            }
+
+            if (count % 40 ==0){
+                GameUtils.littleBoss2BulletList.add(new LittleBoss2Bullet(GameUtils.littleBoss2BulletImg,21,59,bossObj.getX()+220,bossObj.getY()+130,10,this));
+                GameUtils.gameObjList.add(GameUtils.littleBoss2BulletList.get(GameUtils.littleBoss2BulletList.size()-1));
+            }
+
+            //boss 子弹
+            GameUtils.bossBulletList.add(new BossBullet(GameUtils.bossBulletImg,51,72,bossObj.getX()+70,bossObj.getY()+100,9,this));
+            GameUtils.gameObjList.add(GameUtils.bossBulletList.get(GameUtils.bossBulletList.size()-1));
+        }
+        if(count ==1225 && (!GameUtils.gameObjList.contains(waringObj))){
+            GameUtils.gameObjList.add(waringObj);
+        }
+        if(count ==1290){
+            GameUtils.removeList.add(waringObj);
+        }
+        }
+
     public static void main(String[] args) {
         GameWin gameWin = new GameWin();
         gameWin.launch();

BIN
target/classes/com/sf/day04/T2.class


BIN
target/classes/com/sf/day05/T.class


BIN
target/classes/com/sf/game/GameWin$1.class


BIN
target/classes/com/sf/game/GameWin$2.class


BIN
target/classes/com/sf/game/GameWin.class