坦克大战Java代码Word文件下载.docx
- 文档编号:15099981
- 上传时间:2022-10-27
- 格式:DOCX
- 页数:24
- 大小:20.46KB
坦克大战Java代码Word文件下载.docx
《坦克大战Java代码Word文件下载.docx》由会员分享,可在线阅读,更多相关《坦克大战Java代码Word文件下载.docx(24页珍藏版)》请在冰豆网上搜索。
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 坦克 大战 Java 代码