您好,欢迎来到纷纭教育。
搜索
您的当前位置:首页java飞机大战源代码

java飞机大战源代码

来源:纷纭教育
packagecom;;importjava.awt.Color;;importjava.awt.Font;;importjava.awt.Graphics;;importjava.awt.Image;;importjava.awt.Rectangle;importjava.awt.event.Key;importjava.io.IOExceptio;imppackage 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; intlifeCount=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(\"幼圆\g.drawString(\"Score:\"+Play01.count, 20, 60); } } // public void move(){ if(isUP&& !isDown&& !isLeft&& !isRight){ 上 y=y-5; }else if(!isUP&&isDown&& !isLeft&& !isRight){ 下 y=y+5; }else if(!isUP&& !isDown&&isLeft&& !isRight){ 左 x=x-5; }else if(!isUP&& !isDown&& !isLeft&&isRight){ 右 x=x+5; }else if(isUP&& !isDown&&isLeft&& !isRight){ 左上 x=x-5; y=y-5; }else if(!isUP&&isDown&&isLeft&& !isRight){ 左下 x=x-5; y=y+5; }else if(isUP&& !isDown&& !isLeft&&isRight){ 右上 x=x+5; y=y-5; }else if(!isUP&&isDown&& !isLeft&&isRight){ 右下 x=x+5; y=y+5; } // // // // // // // } booleanisUP = false; booleanisDown = false; booleanisLeft = false; booleanisRight = false; // 摁下 public void keyPressed(KeyEvent e) { } 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) { intkeyCode = 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 introleNum = 1; public static intplayStatus = 0;// 0 游戏开始前 1 第一关 -1 游戏结束 } package com; import java.awt.Graphics; import java.awt.Image; 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.util.ArrayList; import java.util.List; import javax.imageio.ImageIO; public class Play01 { static int count=0; Image bgImage = null; // 战机 Plane plane = new Plane(); // 战机子弹 Listmzds = new ArrayList(); // 敌机 Listdijis = new ArrayList(); // 敌机子弹 //Listdijizidans = 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; intfireTime = 0; boolean flag=false; public void draw(Graphics g) { // 画背景图片g.drawImage(bgImage, 0, bgY1, null); bgY1 += 5; bgY1=0;}g.drawImage(bgIm;dijis.add(newDiji());}//;}//判断战机和血瓶相撞 for(inti=0;i;}}booleanisFire1=false; b;packagecom;;importjava.awt.Color;;importjava.awt.Font;;importjava.awt.Graphics;; bgY1 = 0; } g.drawImage(bgImage, 0, bgY2, null); bgY2 += 5; if (bgY2 >= 0) { bgY2 = -600; } // 清理战机子弹 for (inti = 0; i 800) { mzds.remove(i); } } // 添加子弹 if (isFire1 == true && flag==false) { if (fireTime % 8 == 0) { mzds.add(new MyZiDan(plane.x + 25, plane.y + 0)); } fireTime++; } if (isFire1== true && flag==true) { if (fireTime % 4 == 0) { } mzds.add(new MyZiDan(plane.x +8, plane.y +0)); mzds.add(new MyZiDan(plane.x +52, plane.y +0)); } fireTime++; // 画战机子弹 for (inti = 0; i0) flag=false; if(plane.lifeCount<1){ PlaneStatus.playStatus=-1; } } // 判断战机和血瓶相撞 for (inti = 0; iKeyAdapterthis.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(intx,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; importjava.awt.Image;;importjava.awt.Rectangle;importjava.io.IOExceptio;importjavax.imageio.Imag;publicclassDijiZiDan{;ImagezidanImage=null;;intx;;inty;;intfangxiang=0;;publicDijiZ 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 ; intfangxiang =0; public DijiZiDan(intx,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\")); = = = = = // 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(\"幼圆\if(time<=10){ g.drawString(\"[Enter]>>\if(time<=20){ g.drawString(\"[Enter] >>\if(time<=30){ g.drawString(\"[Enter] >>\if(time==30){ time=0; } } } public void keyPressed(KeyEvent e) { intkeyCode = e.getKeyCode(); if(keyCode == KeyEvent.VK_ENTER){ } } if(keyCode ==KeyEvent.VK_LEFT ||keyCode==KeyEvent.VK_RIGHT ){ PlaneStatus.roleNum = 3-PlaneStatus.roleNum;//1~2 互换 } } public void keyReleased(KeyEvent e) { }

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- fenyunshixun.cn 版权所有 湘ICP备2023022495号-9

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务