|
@@ -1,178 +0,0 @@
|
|
|
-package com.sf.game;
|
|
|
-
|
|
|
-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 {
|
|
|
- //记录游戏的状态
|
|
|
- // 0 未开始 1 游戏中 2 暂停 3 失败 4 成功通关
|
|
|
- public static int state = 0;
|
|
|
- //创建背景图片
|
|
|
- BgObj bgObj = new BgObj(GameUtils.bdImg,0,-1800,2);
|
|
|
- //定义一个图片的变量
|
|
|
- Image offScreenImage = null;
|
|
|
- // 我方法飞机对象
|
|
|
- PlaneObj planeObj = new PlaneObj(GameUtils.planeImg,37,41,290,550,0,this);
|
|
|
- //记录游戏绘画的次数
|
|
|
- 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(){
|
|
|
- //设置游戏窗口的大小--前提可见
|
|
|
- this.setVisible(true);
|
|
|
- //设置窗口的大小
|
|
|
- this.setSize(600,800);
|
|
|
- //窗口的位置
|
|
|
- this.setLocationRelativeTo(null);
|
|
|
- //设置标题
|
|
|
- this.setTitle("爱扣钉飞机大战~");
|
|
|
- //关闭窗口后自动结束进程
|
|
|
- this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
|
|
- //将所有的要绘画的游戏物件全部放在集合中
|
|
|
- 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();
|
|
|
- }
|
|
|
-}
|