坦克大战java源代码Word文档下载推荐.docx
- 文档编号:16210098
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:29
- 大小:20.04KB
坦克大战java源代码Word文档下载推荐.docx
《坦克大战java源代码Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《坦克大战java源代码Word文档下载推荐.docx(29页珍藏版)》请在冰豆网上搜索。
publicintgetColor(){
returncolor;
publicvoidsetColor(intcolor){
this.color=color;
}
//我的坦克
classHeroextendsTank
Shotshot=null;
Vector<
Shot>
shotm=newVector<
();
publicHero(intx,inty)
super(x,y);
this.color=5;
//坦克具有一个打击敌人的方法
publicvoidshotenemy(intx,inty,intdirect)
switch(direct)
{
case0:
shot=newShot(this.x+10,this.y,0);
shotm.add(shot);
break;
case1:
shot=newShot(this.x+30,this.y+10,1);
case2:
shot=newShot(this.x+10,this.y+30,2);
case3:
shot=newShot(this.x,this.y+10,3);
}
Threadth=newThread(shot);
th.start();
//调整速度
publicvoidmoveup()
y-=speed;
publicvoidmoveright()
x+=speed;
publicvoidmovedown()
y+=speed;
publicvoidmoveleft()
x-=speed;
//敌人的坦克
classEnemyTankextendsTankimplementsRunnable
ensh=newVector<
EnemyTank>
ets=newVector<
publicEnemyTank(intx,inty)
super(x,y);
this.setColor
(2);
this.setDirect
(2);
//获取MPanel上的敌人坦克
publicvoidsetets(Vector<
vv)
this.ets=vv;
//判断敌人的坦克是否碰撞
publicbooleanisTouch()
booleanb=false;
EnemyTanket=null;
for(inti=0;
i<
ets.size();
i++)
{
et=ets.get(i);
if(et!
=this)
{
if(et.direct==0||et.direct==2)
{
if(this.x>
=et.x&
&
this.x<
=et.x+20&
this.y<
=et.y+30&
this.y>
et.y)
{
returntrue;
}
if(this.x+20>
this.x+20<
}
if(et.direct==1||et.direct==3)
=et.x+30&
=et.y+20&
}
}
if(this.x+30>
this.x+30<
this.y+20<
this.y+20>
this.y+30<
this.y+30>
returnb;
publicvoidrun(){
while(true)
switch(this.direct)
case0:
for(inti=0;
30;
if(y>
0&
this.isTouch()==false)y-=this.speed;
try{
Thread.sleep(50);
}catch(InterruptedExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
break;
case1:
{
if(x<
365&
this.isTouch()==false)x+=this.speed;
case2:
{
if(y<
270&
this.isTouch()==false)y+=this.speed;
case3:
if(x>
this.isTouch()==false)x-=this.speed;
this.direct=(int)(Math.random()*4);
if(this.isLive==false)
if(ensh.size()<
5)
Shotes=null;
switch(this.direct)
case0:
es=newShot(this.getX()+10,this.getY(),0);
ensh.add(es);
break;
case1:
es=newShot(this.getX()+30,this.getY()+10,1);
case2:
es=newShot(this.getX()+10,this.getY()+30,2);
case3:
es=newShot(this.getX(),this.getY()+10,3);
Threadth=newThread(es);
th.start();
//炸弹类
classBomb
intx;
inty;
intlift=9;
publicBomb(intx,inty)
//炸弹的生命值
publicvoidliftdown()
if(lift>
0)
lift--;
}else
isLive=false;
//子弹类
classShotimplementsRunnable
intshotX;
intshotY;
intdirect;
intshotspeed=1;
publicShot(intx,inty,intdirect)
this.shotX=x;
this.shotY=y;
this.direct=direct;
publicintgetShotX(){
returnshotX;
publicvoidsetShotX(intshotX){
this.shotX=shotX;
publicintgetShotY(){
returnshotY;
publicvoidsetShotY(intshotY){
this.shotY=shotY;
publicintgetShotspeed(){
returnshotspeed;
publicvoidsetShotspeed(intshotspeed){
this.shotspeed=shotspeed;
publicvoidrun(){
try{
Thread.sleep(50);
}catch(InterruptedExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
switch(direct)
shotY-=shotspeed;
shotX+=shotspeed;
shotY+=shotspeed;
shotX-=shotspeed;
if(shotX<
0||shotX>
400||shotY<
0||shotY>
300)
isLive=false;
/**
*功能:
坦克大战4.0
*/
packagecom.tankgame4;
importjava.awt.*;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.awt.event.KeyEvent;
importjava.awt.event.KeyListener;
importjava.io.*;
importjavax.swing.*;
importjavax.imageio.*;
publicclassMyTankGame4extendsJFrameimplementsActionListener{
MyPanelmp=null;
MyStartPanelmsp=null;
//菜单定义
JMenuBarjmb=null;
JMenujm1=null;
JMenuItemjmi1=null;
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
MyTankGame4mtg=newMyTankGame4();
//构造函数
publicMyTankGame4()
//创建菜单
jmb=newJMenuBar();
jm1=newJMenu("
Game(G)"
);
jm1.setMnemonic('
G'
jmi1=newJMenuItem("
NewGame(N)"
jmi1.setMnemonic('
N'
jmi1.addActionListener(this);
jmi1.setActionCommand("
NewGame"
jm1.add(jmi1);
jmb.add(jm1);
this.setJMenuBar(jmb);
msp=newMyStartPanel();
Threadst=newThread(msp);
st.start();
this.add(msp);
this.setTitle("
坦克大战"
this.setSize(400,300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
publicvoidactionPerformed(ActionEventarg0){
if(arg0.getActionCommand().equals("
))
this.remove(msp);
mp=newMyPanel();
Threadmt=newThread(mp);
mt.start();
this.add(mp);
this.addKeyListener(mp);
this.setVisible(true);
}
//游戏开始面板
classMyStartPanelextendsJPanelimplementsRunnable
inttimes=0;
publicvoidpaint(Graphicsg)
super.paint(g);
g.fillRect(0,0,400,300);
if(times%2==0)
Fontmyfont=newFont("
行楷"
Font.BOLD,30);
g.setFont(myfont);
g.setColor(Color.yellow);
g.drawString("
第一关"
130,130);
this.repaint();
Thread.sleep(300);
times++;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 坦克 大战 java 源代码