飞机大战 java源代码DOCWord文件下载.docx

上传人:b****5 文档编号:17406620 上传时间:2022-12-01 格式:DOCX 页数:23 大小:18.54KB
下载 相关 举报
飞机大战 java源代码DOCWord文件下载.docx_第1页
第1页 / 共23页
飞机大战 java源代码DOCWord文件下载.docx_第2页
第2页 / 共23页
飞机大战 java源代码DOCWord文件下载.docx_第3页
第3页 / 共23页
飞机大战 java源代码DOCWord文件下载.docx_第4页
第4页 / 共23页
飞机大战 java源代码DOCWord文件下载.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

飞机大战 java源代码DOCWord文件下载.docx

《飞机大战 java源代码DOCWord文件下载.docx》由会员分享,可在线阅读,更多相关《飞机大战 java源代码DOCWord文件下载.docx(23页珍藏版)》请在冰豆网上搜索。

飞机大战 java源代码DOCWord文件下载.docx

g.drawString("

Score:

"

+Play01.count,20,60);

publicvoidmove(){

if(isUP&

&

!

isDown&

isLeft&

isRight){

//上

y=y-5;

}elseif(!

isUP&

//下

y=y+5;

//左

x=x-5;

//右

x=x+5;

}elseif(isUP&

//左上

//左下

//右上

//右下

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){

isRight=false;

isLeft=false;

isUP=false;

isDown=false;

publicRectanglegetRectangle(){

returnnewRectangle(x,y,feijiImage.getWidth(null),feijiImage.getHeight(null));

}

publicclassPlaneStatus{

publicstaticintroleNum=1;

publicstaticintplayStatus=0;

//0游戏开始前1第一关-1游戏结束

publicclassPower{

ImagePowerImage=null;

intx=20;

inty=0;

publicPower(){

this.x=(int)(Math.random()*540)+20;

PowerImage=

images/power.png"

//画血瓶图片

g.drawImage(PowerImage,x,y,null);

//血瓶移动

y++;

returnnewRectangle(x,y,PowerImage.getWidth(null),PowerImage.getHeight(null));

//第一关

publicclassPlay01{

staticintcount=0;

ImagebgImage=null;

//战机

Planeplane=newPlane();

//战机子弹

List<

MyZiDan>

mzds=newArrayList<

();

//敌机

Diji>

dijis=newArrayList<

//敌机子弹

//List<

DijiZiDan>

dijizidans=newArrayList<

//血瓶

Gift>

gifts=newArrayList<

Power>

powers=newArrayList<

publicPlay01(){

bgImage=

images/bg_01.jpg"

intbgY1=0;

intbgY2=-600;

intfireTime=0;

booleanflag=false;

//画背景图片

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;

i<

mzds.size();

i++){

MyZiDanmyZidan=mzds.get(i);

if(myZidan.x>

800){

mzds.remove(i);

}

//添加子弹

if(isFire1==true&

flag==false){

if(fireTime%8==0){

mzds.add(newMyZiDan(plane.x+25,plane.y+0));

fireTime++;

flag==true){

if(fireTime%4==0){

mzds.add(newMyZiDan(plane.x+8,plane.y+0));

mzds.add(newMyZiDan(plane.x+52,plane.y+0));

//画战机子弹

myZidan.draw(g);

//清理敌机

dijis.size();

Dijidj=dijis.get(i);

if(dj.x<

-100){

dijis.remove(i);

//抽奖:

添加敌机

if((int)(Math.random()*20)==5){

dijis.add(newDiji());

//抽奖:

添加血瓶

if((int)(Math.random()*1000)==5){

gifts.add(newGift());

gifts.size();

Giftgift=gifts.get(i);

gift.draw(g);

//

添加power

if((int)(Math.random()*1000)==5){

powers.add(newPower());

}

for(inti=0;

powers.size();

Powerpower=powers.get(i);

power.draw(g);

//画敌机

dj.draw(g);

//画飞机

plane.draw(g);

//判断战机相撞

//先得到每一个敌机

Rectangler1=dj.getRectangle();

Rectangler2=plane.getRectangle();

if(r1.intersects(r2)){

plane.lifeCount=plane.lifeCount-1;

if(plane.lifeCount>

0)

flag=false;

if(plane.lifeCount<

1){PlaneStatus.playStatus=-1;

//判断战机和血瓶相撞

//先得到每一个血瓶

Rectangler1=gift.getRectangle();

gifts.remove(i);

5){

plane.lifeCount=plane.lifeCount+1;

////判断战机和Power相撞

//先得到每一个power

Powerpower=powers.get(i);

Rectangler1=power.getRectangle();

powers.remove(i);

flag=true;

//判断敌机在中弹

//得到每个战机子弹

MyZiDanmyzidan=mzds.get(i);

Rectangler1=myzidan.getRectangle();

for(intj=0;

j<

j++){

//每一个敌机

Dijidiji=dijis.get(j);

Rectangler2=diji.getRectangle();

if(r1.intersects(r2)){

mzds.remove(i);

dijis.remove(j);

count++;

booleanisFire1=false;

booleanisFire2=false;

plane.keyPressed(e);

if(e.getKeyCode()==KeyEvent.VK_J){

isFire1=true;

/*if(e.getKeyCode()==KeyEvent.VK_K){

isFire2=true;

}*/

plane.keyReleased(e);

isFire1=false;

fireTime=0;

isFire2=false;

if(e.getKeyCode()==KeyEvent.VK_P){

for(inti=0;

i++)

dijis.remove(i);

//游戏结束

publicclassOver{

Imageobg=null;

Imageng=null;

publicOver(){

obg=

ng=

g.drawImage(obg,0,0,null);

g.drawImage(ng,120,100,null);

g.setColor(Color.black);

Font.BOLD,40));

游戏结束啦!

200,600);

publicclassMainFrameextendsJFrame{

Beforebefore=newBefore();

Play01play01=newPlay01();

Overover=newOver();

publicMainFrame(){

//设置标题

this.setTitle("

让子弹飞一会~"

);

//设置大小

this.setSize(600,800);

//定位居中

this.setLocationRelativeTo(null);

//添加关闭操作

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//禁止重置大小z

this.setResizable(false);

//添加键盘监听器

//KeyListener-->

KeyAdapter

this.addKeyListener(newKeyAdapter(){

@Override

publicvoidkeyPressed(KeyEvente){

if(PlaneStatus.playStatus==0){

before.keyPressed(e);

}elseif(PlaneStatus.playStatus==1){

play01.keyPressed(e);

}elseif(PlaneStatus.playStatus==-1){

over.keyPressed(e);

publicvoidkeyReleased(KeyEvente){

before.keyReleased(e);

play01.keyReleased(e);

over.keyReleased(e);

});

//启动一个线程:

每隔20毫秒执行一次

newThread(){

publicvoidrun(){

while(true){

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

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

publicclassMyZiDan{

ImagezidanImage=null;

intx;

inty;

publicMyZiDan(intx,inty){

this.x=x;

this.y=y;

zidanImage=

images/zidan.png"

//画我军子弹图片

g.drawImage(zidanImage,x,y,null);

//我的飞机子弹移动速度

y-=20;

returnnewRectangle(x,y,zidanImage.getWidth(null),zidanImage.getHeight(null));

publicclassDiji{

ImagedijiImage=null;

inty=-20;

intx=10;

//20~760

intr;

publicDiji(

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 表格类模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1