java飞机大战boos代码_飞机大战 java 源代码

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-1 02:53   29   0

a7f4a3f590493a1e451dd952a488fd7c.gif 飞机大战 java 源代码

(19页)

3331462ac051031e4a7f0e261a9de833.gif

本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!

14.9 积分

package com;import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Image; import java.awt.Rectangle; import java.awt.event.KeyEvent; import java.io.IOException;import javax.imageio.ImageIO;public class Plane { Image feijiImage = null; int x = 300; int y = 700; int lifeCount=5; public Plane() { try { feijiImage = ImageIO.read(Plane.class.getClassLoader() .getResourceAsStream(“images/feiji.png“)); } catch (IOException e) { e.printStackTrace(); } }public void draw(Graphics g) {//画飞机图片 g.drawImage(feijiImage, x, y, null);//飞机移动 this.move();// 血条 if(lifeCount>0){ g.setColor(Color.WHITE); g.fillRect(20, 80, 100, 10); g.setColor(Color.red); g.fillRect(20, 80, (100/5)*lifeCount, 10); g.setColor(Color.blue);g.setFont(new Font(“幼圆“, Font.BOLD, 30)); g.drawString(“Score:“+Play01.count, 20, 60);}}public void move(){ if(isUP }else if(!isUP }else if(!isUP }else if(!isUP }else if(isUP y=y-5; }else if(!isUP y=y+5; }else if(isUP y=y-5;}else if(!isUP y=y+5; } }boolean isUP = false; boolean isDown = false; boolean isLeft = false; boolean isRight = false;// 摁下 public void keyPressed(KeyEvent e) {int keyCode = e.getKeyCode(); if (keyCode == KeyEvent.VK_RIGHT || keyCode == KeyEvent.VK_D) { isRight=true; } else if (keyCode == KeyEvent.VK_LEFT || keyCode == KeyEvent.VK_A) { isLeft=true; } else if (keyCode == KeyEvent.VK_UP || keyCode == KeyEvent.VK_W) { isUP=true; } else if (keyCode == KeyEvent.VK_DOWN || keyCode == KeyEvent.VK_S) { isDown=true; } }// 放开 public void keyReleased(KeyEvent e) { int keyCode = e.getKeyCode(); if (keyCode == KeyEvent.VK_RIGHT || keyCode == KeyEvent.VK_D) { isRight=false; } else if (keyCode == KeyEvent.VK_LEFT || keyCode == KeyEvent.VK_A) { isLeft=false; } else if (keyCode == KeyEvent.VK_UP || keyCode == KeyEvent.VK_W) { isUP=false; } else if (keyCode == KeyEvent.VK_DOWN || keyCode == KeyEvent.VK_S) { isDown=false; } } public Rectangle getRectangle(){ return new Rectangle(x,y,feijiImage.getWidth(null),feijiImage.getHeight(null)); } }package com;public class PlaneStatus { public static int roleNum = 1;public static int playStatus = 0;// 0 游戏开始前 1 第一关 -1 游戏结束}package com;import java.awt.Graphics; import java.awt.Image;import java.awt.Rectangle; import java.awt.event.KeyEvent; import java.io.IOException;import javax.imageio.ImageIO;public class Power { Image PowerImage = null; int x = 20; int y = 0;public Power() { this.x=(int)(Math.random()*540)+20; try {PowerImage = ImageIO.read(Gift.class.getClassLoader() .getResourceAsStream(“images/power.png“)); } catch (IOException e) { e.printStackTrace(); } }public void draw(Graphics g) {//画血瓶图片 g.drawImage(PowerImage, x, y, null);//血瓶移动y++; } public Rectangle getRectangle(){ return new Rectangle(x,y,PowerImage.getWidth(null),PowerImage.getHeight(null)); }}package com;import java.awt.Graphics; import java.awt.Image; import java.awt.Rectangle; import java.awt.event.KeyEvent;import java.io.IOException; import java.util.ArrayList; import java.util.List;import javax.imageio.ImageIO;// 第一关 public class Play01 {static int count=0;Image bgImage = null;// 战机 Plane plane = new Plane();// 战机子弹 List mzds = new ArrayList();// 敌机 List dijis = new ArrayList();// 敌机子弹 //List dijizidans = new ArrayList();// 血瓶 List gifts = new ArrayList(); List powers = new ArrayList(); public Play01() { try {bgImage = ImageIO.read(Play01.class.getClassLoader() .getResourceAsStream(“images/bg_01.jpg“)); } catch (IOException e) { e.printStackTrace(); } }int bgY1 = 0; int bgY2 = -600; int fireTime = 0; boolean flag=false;public void draw(Graphics g) {// 画背景图片 g.drawImage(bgImage, 0, bgY1, null); bgY1 += 5;if (bgY1 = 0) { bgY2 = -600; }// 清理战机子弹 for (int i = 0; i 800) { mzds.remove(i); } }// 添加子弹 if (isFire1 == true } fireTime++; } if (isFire1== true mzds.add(new MyZiDan(plane.x +52, plane.y +0)); } fireTime++; }// 画战机子弹 for (int i = 0; i 0) flag=false;if(plane.lifeCount KeyAdapter this.addKeyListener(new KeyAdapter(){ @Override public void keyPressed(KeyEvent e) { if(PlaneStatus.playStatus == 0){ before.keyPressed(e); }else if(PlaneStatus.playStatus ==1){ play01.keyPressed(e); }else if(PlaneStatus.playStatus==-1){ over.keyPressed(e); } } @Override public void keyReleased(KeyEvent e) { if(PlaneStatus.playStatus == 0){ before.keyReleased(e); }else if(PlaneStatus.playStatus ==1){ play01.keyReleased(e); }else if(PlaneStatus.playStatus==-1){ over.keyReleased(e); } } });//启动一个线程:每隔 20 毫秒执行一次 new Thread(){ public void run(){ while(true){ MainFrame.this.repaint(); try { Thread.sleep(20); } catch (InterruptedException e) { e.printStackTrace(); } } } }.start();//显示 this.setVisible(true); }Image bufferImage =null;//这个方法也是 20 毫秒执行一次 public void paint(Graphics g){ if(bufferImage==null){ bufferImage = this.createImage(600, 800); } Graphics g4Image = bufferImage.getGraphics(); g4Image.setColor(Color.BLACK); g4Image.fillRect(0, 0, 600, 800); this.draw(g4Image);g.drawImage(bufferImage, 0, 0, null);}public void draw(Graphics g){ if(PlaneStatus.playStatus == 0){ before.draw(g); }else if(PlaneStatus.playStatus ==1){ play01.draw(g); }else if(PlaneStatus.playStatus==-1){ over.draw(g); } }public static void main(String[] args) {new MainFrame(); } }package com; import java.awt.Graphics; import java.awt.Image; import java.awt.Rectangle; import java.io.IOException; import javax.imageio.ImageIO;public class MyZiDan { Image zidanImage = null; int x ; int y ;public MyZiDan(int x,int y) { this.x=x; this.y=y; try { zidanImage = ImageIO.read(MyZiDan.class.getClassLoader() .getResourceAsStream(“images/zidan.png“)); } catch (IOException e) { e.printStackTrace(); } }public void draw(Graphics g) {//画我军子弹图片 g.drawImage(zidanImage, x, y, null);//我的飞机子弹移动速度 y-=20; } public Rectangle getRectangle(){ return new Rectangle(x,y,zidanImage.getWidth(null),zidanImage.getHeight(null)); } }package com;import java.awt.Graphics; import java.awt.Image;import java.awt.Rectangle; import java.awt.event.KeyEvent; import java.io.IOException;import javax.imageio.ImageIO;public class Diji { Image dijiImage = null; int y = -20; int x = 10;//20 ~ 760 int r;public Diji() { this.x=(int)(Math.random()*540)+40; try {r = (int)(Math.random()*3)+1; dijiImage = ImageIO.read(Diji.class.getClassLoader() .getResourceAsStream(“images/diji_“+r+“.png“)); } catch (IOException e) { e.printStackTrace(); } }public void draw(Graphics g) {//画敌机图片 g.drawImage(dijiImage, x, y, null);//敌机移动 if(r==1){ y+=4; }else if(r==2){ y+=4; }else if(r==3){ y+=7; }} public Rectangle getRectangle(){ return new Rectangle(x,y,dijiImage.getWidth(null),dijiImage.getHeight(null)); }}package com;import java.awt.Graphics; import java.awt.Image; import java.awt.Rectangle; import java.awt.event.KeyEvent; import java.io.IOException;import javax.imageio.ImageIO;public class Gift { Image GiftImage = null; int x = 20; int y = 0;public Gift() { this.x=(int)(Math.random()*540)+20; try {GiftImage = ImageIO.read(Gift.class.getClassLoader() .getResourceAsStream(“images/blood.png“)); } catch (IOException e) { e.printStackTrace(); } }public void draw(Graphics g) {//画血瓶图片 g.drawImage(GiftImage, x, y, null);//血瓶移动y++; } public Rectangle getRectangle(){ return new Rectangle(x,y,GiftImage.getWidth(null),GiftImage.getHeight(null)); }}package com;import java.awt.Graphics;import java.awt.Image; import java.awt.Rectangle; import java.io.IOException;import javax.imageio.ImageIO;public class DijiZiDan { Image zidanImage = null; int x ; int y ; int fangxiang =0; public DijiZiDan(int x,int y) { this.x=x; this.y=y; fangxiang = (int)(Math.random()*5);//0 ~ 7 try { zidanImage = ImageIO.read(DijiZiDan.class.getClassLoader() .getResourceAsStream(“images/dijizidan.jpg“)); } catch (IOException e) { e.printStackTrace(); } }public void draw(Graphics g) {//画敌机子弹图片 g.drawImage(zidanImage, x, y, null);//移动 this.move(); } public void move(){ if(fangxiang==0){//下 y=y+2; }else if(fangxiang==1){//左 x=x-2; }else if(fangxiang==2){//右 x=x+2; }else if(fangxiang==3){//左下 x=x-2; y=y+2; }else if(fangxiang==4){//右下 x=x+2; y=y+2; } } public Rectangle getRectangle(){ return new Rectangle(x,y,zidanImage.getWidth(null),zidanImage.getHeight(null)); }}package com;import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Image; import java.awt.event.KeyEvent; import java.io.IOException;import javax.imageio.ImageIO;// 游戏开始之前 public class Before { Image bg=null; Image wfeiji=null; Image kdiji1=null; Image kdiji2=null; Image kdiji3=null;public Before() { try { bg = ImageIO.read(Before.class.getClassLoader().getResourceAsStream(“images/bg.jpg“)); wfeiji = ImageIO.read(Before.class.getClassLoader().getResourceAsStream(“images/feiji_1.png“)); kdiji1 = ImageIO.read(Before.class.getClassLoader().getResourceAsStream(“images/kdiji_01.png“)); kdiji2 = ImageIO.read(Before.class.getClassLoader().getResourceAsStream(“images/kdiji_02.png“)); kdiji3 = ImageIO.read(Before.class.getClassLoader().getResourceAsStream(“images/kdiji_03.png“));} catch (IOException e) { e.printStackTrace(); } }int time=0; public void draw(Graphics g){if(PlaneStatus.roleNum==1){// 画妹妹 g.drawImage(bg, 0, 0, null); g.drawImage(wfeiji, 260, 600, null);g.drawImage(kdiji1, 200, 50, null); g.drawImage(kdiji1, 400, 50, null); g.drawImage(kdiji1, 150, 480, null); g.drawImage(kdiji1, 400, 480, null); g.drawImage(kdiji2, 100, 200, null); g.drawImage(kdiji2, 300, 100, null); g.drawImage(kdiji2, 480, 200, null); g.drawImage(kdiji3, 300, 300, null); g.drawImage(kdiji3, 70, 400, null); g.drawImage(kdiji3, 510, 400, null);}//画回车符 time++; g.setColor(Color.YELLOW);g.setFont(new Font(“幼圆“, Font.BOLD, 30)); if(time>“, 50, 750); }else if(time>“, 50, 750); }else if(time>“, 50, 750); if(time==30){ time=0; } }} public void keyPressed(KeyEvent e) { int keyCode = e.getKeyCode(); if(keyCode == KeyEvent.VK_ENTER){PlaneStatus.playStatus=1; } if(keyCode ==KeyEvent.VK_LEFT ||keyCode==KeyEvent.VK_RIGHT ){PlaneStatus.roleNum = 3-PlaneStatus.roleNum;//1~2 互换 } } public void keyReleased(KeyEvent e) { } } 关 键 词: 飞机 大战 java 源代码

4d91c43bfc72ca913299809b07b4968f.gif 天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP