首页 飞机大战java源代码

飞机大战java源代码

举报
开通vip

飞机大战java源代码----word.zl-package;importjava.awt.Color;importjava.awt.Font;importjava.awt.Graphics;importjava.awt.Image;importjava.awt.Rectangle;importjava.awt.event.KeyEvent;importjava.io.IOException;importjavax.imageio.ImageIO;publicclassPlane{ImagefeijiImage=null;intx=30...

飞机大战java源代码
----word.zl-package;importjava.awt.Color;importjava.awt.Font;importjava.awt.Graphics;importjava.awt.Image;importjava.awt.Rectangle;importjava.awt.event.KeyEvent;importjava.io.IOException;importjavax.imageio.ImageIO;publicclassPlane{ImagefeijiImage=null;intx=300;inty=700;intlifeCount=5;publicPlane(){try{feijiImage=ImageIO.read(Plane.class.getClassLoader().getResourceAsStream("images/feiji.png"));}catch(IOExceptione){e.printStackTrace();}}publicvoiddraw(Graphicsg){//画飞机图片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(newFont("幼圆",Font.BOLD,30));g.drawString("Score:"+Play01.count,20,60);}}publicvoidmove(){if(isUP&&!isDown&&!isLeft&&!isRight){//上y=y-5;}elseif(!isUP&&isDown&&!isLeft&&!isRight){//下y=y+5;}elseif(!isUP&&!isDown&&isLeft&&!isRight){//左x=x-5;}elseif(!isUP&&!isDown&&!isLeft&&isRight){//右x=x+5;}elseif(isUP&&!isDown&&isLeft&&!isRight){//左上x=x-5;y=y-5;}elseif(!isUP&&isDown&&isLeft&&!isRight){//左下x=x-5;y=y+5;}elseif(isUP&&!isDown&&!isLeft&&isRight){//右上x=x+5;y=y-5;}elseif(!isUP&&isDown&&!isLeft&&isRight){//右下x=x+5;y=y+5;}}booleanisUP=false;booleanisDown=false;booleanisLeft=false;booleanisRight=false;//摁下publicvoidkeyPressed(KeyEvente){intkeyCode=e.getKeyCode();if(keyCode==KeyEvent.VK_RIGHT||keyCode==KeyEvent.VK_D){isRight=true;}elseif(keyCode==KeyEvent.VK_LEFT||keyCode==KeyEvent.VK_A){isLeft=true;}elseif(keyCode==KeyEvent.VK_UP||keyCode==KeyEvent.VK_W){isUP=true;}elseif(keyCode==KeyEvent.VK_DOWN||keyCode==KeyEvent.VK_S){isDown=true;}}//放开publicvoidkeyReleased(KeyEvente){intkeyCode=e.getKeyCode();if(keyCode==KeyEvent.VK_RIGHT||keyCode==KeyEvent.VK_D){isRight=false;}elseif(keyCode==KeyEvent.VK_LEFT||keyCode==KeyEvent.VK_A){isLeft=false;}elseif(keyCode==KeyEvent.VK_UP||keyCode==KeyEvent.VK_W){isUP=false;}elseif(keyCode==KeyEvent.VK_DOWN||keyCode==KeyEvent.VK_S){isDown=false;}}publicRectanglegetRectangle(){returnnewRectangle(x,y,feijiImage.getWidth(null),feijiImage.getHeight(null));}}package;publicclassPlaneStatus{publicstaticintroleNum=1;publicstaticintplayStatus=0;//0游戏开场前1第一关-1游戏完毕}package;importjava.awt.Graphics;importjava.awt.Image;importjava.awt.Rectangle;importjava.awt.event.KeyEvent;importjava.io.IOException;importjavax.imageio.ImageIO;publicclassPower{ImagePowerImage=null;intx=20;inty=0;publicPower(){this.x=(int)(Math.random()*540)+20;try{PowerImage=ImageIO.read(Gift.class.getClassLoader().getResourceAsStream("images/power.png"));}catch(IOExceptione){e.printStackTrace();}}publicvoiddraw(Graphicsg){//画血瓶图片g.drawImage(PowerImage,x,y,null);//血瓶移动y++;}publicRectanglegetRectangle(){returnnewRectangle(x,y,PowerImage.getWidth(null),PowerImage.getHeight(null));}}package;importjava.awt.Graphics;importjava.awt.Image;importjava.awt.Rectangle;importjava.awt.event.KeyEvent;importjava.io.IOException;importjava.util.ArrayList;importjava.util.List;importjavax.imageio.ImageIO;//第一关publicclassPlay01{staticintcount=0;ImagebgImage=null;//战机Planeplane=newPlane();//战机子弹Listmzds=newArrayList();//敌机Listdijis=newArrayList();//敌机子弹//Listdijizidans=newArrayList();//血瓶Listgifts=newArrayList();Listpowers=newArrayList();publicPlay01(){try{bgImage=ImageIO.read(Play01.class.getClassLoader().getResourceAsStream("images/bg_01.jpg"));}catch(IOExceptione){e.printStackTrace();}}intbgY1=0;intbgY2=-600;intfireTime=0;booleanflag=false;publicvoiddraw(Graphicsg){//画背景图片g.drawImage(bgImage,0,bgY1,null);bgY1+=5;if(bgY1<=600){bgY1=0;}g.drawImage(bgImage,0,bgY2,null);bgY2+=5;if(bgY2>=0){bgY2=-600;}//清理战机子弹for(inti=0;i800){mzds.remove(i);}}//添加子弹if(isFire1==true&&flag==false){if(fireTime%8==0){mzds.add(newMyZiDan(plane.x+25,plane.y+0));}fireTime++;}if(isFire1==true&&flag==true){if(fireTime%4==0){mzds.add(newMyZiDan(plane.x+8,plane.y+0));mzds.add(newMyZiDan(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(newKeyAdapter(){OverridepublicvoidkeyPressed(KeyEvente){if(PlaneStatus.playStatus==0){before.keyPressed(e);}elseif(PlaneStatus.playStatus==1){play01.keyPressed(e);}elseif(PlaneStatus.playStatus==-1){over.keyPressed(e);}}OverridepublicvoidkeyReleased(KeyEvente){if(PlaneStatus.playStatus==0){before.keyReleased(e);}elseif(PlaneStatus.playStatus==1){play01.keyReleased(e);}elseif(PlaneStatus.playStatus==-1){over.keyReleased(e);}}});//启动一个线程:每隔20毫秒执行一次newThread(){publicvoidrun(){while(true){MainFrame.this.repaint();try{Thread.sleep(20);}catch(InterruptedExceptione){e.printStackTrace();}}}}.start();//显示this.setVisible(true);}ImagebufferImage=null;//这个方法也是20毫秒执行一次publicvoidpaint(Graphicsg){if(bufferImage==null){bufferImage=this.createImage(600,800);}Graphicsg4Image=bufferImage.getGraphics();g4Image.setColor(Color.BLACK);g4Image.fillRect(0,0,600,800);this.draw(g4Image);g.drawImage(bufferImage,0,0,null);}publicvoiddraw(Graphicsg){if(PlaneStatus.playStatus==0){before.draw(g);}elseif(PlaneStatus.playStatus==1){play01.draw(g);}elseif(PlaneStatus.playStatus==-1){over.draw(g);}}publicstaticvoidmain(String[]args){newMainFrame();}}package;importjava.awt.Graphics;importjava.awt.Image;importjava.awt.Rectangle;importjava.io.IOException;importjavax.imageio.ImageIO;publicclassMyZiDan{ImagezidanImage=null;intx;inty;publicMyZiDan(intx,inty){this.x=x;this.y=y;try{zidanImage=ImageIO.read(MyZiDan.class.getClassLoader().getResourceAsStream("images/zidan.png"));}catch(IOExceptione){e.printStackTrace();}}publicvoiddraw(Graphicsg){//画我军子弹图片g.drawImage(zidanImage,x,y,null);//我的飞机子弹移动速度y-=20;}publicRectanglegetRectangle(){returnnewRectangle(x,y,zidanImage.getWidth(null),zidanImage.getHeight(null));}}package;importjava.awt.Graphics;importjava.awt.Image;importjava.awt.Rectangle;importjava.awt.event.KeyEvent;importjava.io.IOException;importjavax.imageio.ImageIO;publicclassDiji{ImagedijiImage=null;inty=-20;intx=10;//20~760intr;publicDiji(){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(IOExceptione){e.printStackTrace();}}publicvoiddraw(Graphicsg){//画敌机图片g.drawImage(dijiImage,x,y,null);//敌机移动if(r==1){y+=4;}elseif(r==2){y+=4;}elseif(r==3){y+=7;}}publicRectanglegetRectangle(){returnnewRectangle(x,y,dijiImage.getWidth(null),dijiImage.getHeight(null));}}package;importjava.awt.Graphics;importjava.awt.Image;importjava.awt.Rectangle;importjava.awt.event.KeyEvent;importjava.io.IOException;importjavax.imageio.ImageIO;publicclassGift{ImageGiftImage=null;intx=20;inty=0;publicGift(){this.x=(int)(Math.random()*540)+20;try{GiftImage=ImageIO.read(Gift.class.getClassLoader().getResourceAsStream("images/blood.png"));}catch(IOExceptione){e.printStackTrace();}}publicvoiddraw(Graphicsg){//画血瓶图片g.drawImage(GiftImage,x,y,null);//血瓶移动y++;}publicRectanglegetRectangle(){returnnewRectangle(x,y,GiftImage.getWidth(null),GiftImage.getHeight(null));}}package;importjava.awt.Graphics;importjava.awt.Image;importjava.awt.Rectangle;importjava.io.IOException;importjavax.imageio.ImageIO;publicclassDijiZiDan{ImagezidanImage=null;intx;inty;intfangxiang=0;publicDijiZiDan(intx,inty){this.x=x;this.y=y;fangxiang=(int)(Math.random()*5);//0~7try{zidanImage=ImageIO.read(DijiZiDan.class.getClassLoader().getResourceAsStream("images/dijizidan.jpg"));}catch(IOExceptione){e.printStackTrace();}}publicvoiddraw(Graphicsg){//画敌机子弹图片g.drawImage(zidanImage,x,y,null);//移动this.move();}publicvoidmove(){if(fangxiang==0){//下y=y+2;}elseif(fangxiang==1){//左x=x-2;}elseif(fangxiang==2){//右x=x+2;}elseif(fangxiang==3){//左下x=x-2;y=y+2;}elseif(fangxiang==4){//右下x=x+2;y=y+2;}}publicRectanglegetRectangle(){returnnewRectangle(x,y,zidanImage.getWidth(null),zidanImage.getHeight(null));}}package;importjava.awt.Color;importjava.awt.Font;importjava.awt.Graphics;importjava.awt.Image;importjava.awt.event.KeyEvent;importjava.io.IOException;importjavax.imageio.ImageIO;//游戏开场之前publicclassBefore{Imagebg=null;Imagewfeiji=null;Imagekdiji1=null;Imagekdiji2=null;Imagekdiji3=null;publicBefore(){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(IOExceptione){e.printStackTrace();}}inttime=0;publicvoiddraw(Graphicsg){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(newFont("幼圆",Font.BOLD,30));if(time<=10){g.drawString("[Enter]>>",50,750);}elseif(time<=20){g.drawString("[Enter]>>",50,750);}elseif(time<=30){g.drawString("[Enter]>>",50,750);if(time==30){time=0;}}}publicvoidkeyPressed(KeyEvente){intkeyCode=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互换}}publicvoidkeyReleased(KeyEvente){}}
本文档为【飞机大战java源代码】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
pl64xlyx
长期工作中积累了很多经验
格式:doc
大小:67KB
软件:Word
页数:0
分类:教育学
上传时间:2021-10-09
浏览量:1