坦克大战Java代码Word文件下载.docx

上传人:b****3 文档编号:15099981 上传时间:2022-10-27 格式:DOCX 页数:24 大小:20.46KB
下载 相关 举报
坦克大战Java代码Word文件下载.docx_第1页
第1页 / 共24页
坦克大战Java代码Word文件下载.docx_第2页
第2页 / 共24页
坦克大战Java代码Word文件下载.docx_第3页
第3页 / 共24页
坦克大战Java代码Word文件下载.docx_第4页
第4页 / 共24页
坦克大战Java代码Word文件下载.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

坦克大战Java代码Word文件下载.docx

《坦克大战Java代码Word文件下载.docx》由会员分享,可在线阅读,更多相关《坦克大战Java代码Word文件下载.docx(24页珍藏版)》请在冰豆网上搜索。

坦克大战Java代码Word文件下载.docx

w=h=15;

}

//画出血块

publicvoiddraw(Graphicsg){

if(!

live)return;

Colorc=g.getColor();

//对象c获取当前颜色

g.setColor(Color.MAGENTA);

//设定血块颜色为洋红色

g.fillRect(x,y,w,h);

//用洋红色填充矩形

g.setColor(c);

move();

//调用move方法

//血块移动方法

privatevoidmove(){

step++;

if(step==pos.length){

step=0;

}

x=pos[step][0];

y=pos[step][1];

//看是否和子弹相碰撞

publicRectanglegetRect(){

returnnewRectangle(x,y,w,h);

//判断生存状态

publicbooleanisLive(){

returnlive;

//返回生存状态

//设定生死状态

publicvoidsetLive(booleanlive){

this.live=live;

}

 

//爆炸类

publicclassExplode{

intx,y;

//定义爆炸坐标变量

//初始化生命为true

//引用坦克客户端对象

privateTankClienttc;

//定义并初始化半径数组

int[]diameter={4,7,12,18,26,32,49,30,14,6};

//根据碰撞位置创建爆炸

publicExplode(intx,inty,TankClienttc){

this.x=x;

this.y=y;

this.tc=tc;

//用一个圆来表示模拟爆炸

live){

tc.explodes.remove(this);

return;

if(step==diameter.length){

live=false;

//对象c用来获取颜色

g.setColor(Color.ORANGE);

//设定爆炸颜色为桔黄色

g.fillOval(x,y,diameter[step],diameter[step]);

//用桔黄色填充圆

importjava.util.List;

//子弹类

publicclassMissile{

publicstaticfinalintXSPEED=10;

//子弹水平速度

publicstaticfinalintYSPEED=10;

//子弹垂直速度

publicstaticfinalintWIDTH=10;

//子弹宽度变量

publicstaticfinalintHEIGHT=10;

//子弹高度变量

//子弹坐标

Tank.Directiondir;

//子弹方向

//子弹生死状态变量

privatebooleangood;

//设定敌我双方判断标志

//判断是否存活

//坦克客户对象

privateTankClienttc;

//子弹构造函数

publicMissile(intx,inty,Tank.Directiondir){

this.dir=dir;

//重写构造函数

publicMissile(intx,inty,booleangood,Tank.Directiondir,TankClienttc){

this(x,y,dir);

this.good=good;

//在窗体上画出子弹

tc.missiles.remove(this);

}//如果子弹死了,则不画出

//获取颜色

g.setColor(Color.BLACK);

//设置子弹颜色为黑色

g.fillOval(x,y,WIDTH,HEIGHT);

//用黑色填充圆

//子弹移动方法

//子弹移动函数

//根据子弹的方向确定下一步的移动

switch(dir){

caseL:

x-=XSPEED;

break;

caseLU:

y-=YSPEED;

caseU:

caseRU:

x+=XSPEED;

caseR:

caseRD:

y+=YSPEED;

caseD:

caseLD:

caseSTOP:

//判断子弹是否出界,若出则去掉

if(x<

0||y<

0||x>

TankClient.GAME_WIDTH||y>

TankClient.GAME_HEIGHT){

}

//判断子弹生存状态

//返回子弹生存状态

//获取子弹外围坐标

returnnewRectangle(x,y,WIDTH,HEIGHT);

//打坦克函数

publicbooleanhitTank(Tankt){

if(this.live&

&

this.getRect().intersects(t.getRect())&

t.isLive()&

this.good!

=t.isGood()){//每中一次弹生命值减少20

if(t.isGood()){

t.setLife(t.getLife()-20);

if(t.getLife()<

=0)t.setLive(false);

//坦克没血了则没生命

}else{

t.setLive(false);

}

this.live=false;

Explodee=newExplode(x,y,tc);

//创建一个爆炸e对象

tc.explodes.add(e);

//添加到爆炸容器中

returntrue;

returnfalse;

//依次判断所有敌方坦克是否被子弹击中

publicbooleanhitTanks(List<

Tank>

tanks){

for(inti=0;

i<

tanks.size();

i++){

if(hitTank(tanks.get(i))){

returntrue;

//判断子弹是否击中墙

publicbooleanhitWall(Wallw){

this.getRect().intersects(w.getRect())){

importjava.awt.event.*;

importjava.util.*;

//定义坦克类

publicclassTank{

publicstaticfinalintXSPEED=5;

//坦克水平速度

publicstaticfinalintYSPEED=5;

//坦克垂直速度

publicstaticfinalintWIDTH=30;

//坦克宽度

publicstaticfinalintHEIGHT=30;

//坦克高度

//初始化生命为true

privateBloodBarbb=newBloodBar();

//声明血块变量

privateintlife=100;

//初始化生命值为100

//生命坦克客户端变量

//设置区分敌我两方标志

privateintx,y;

//声明两个整型私有变量x,y坐标

privateintoldX,oldY;

//记录上一步的坐标

privatestaticRandomr=newRandom

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

当前位置:首页 > 工程科技

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

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