|
@@ -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();
|