java 坦克大战游戏教程完整代码

  • 格式:docx
  • 大小:103.11 KB
  • 文档页数:18

下载文档原格式

  / 18
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

项目:用java做的坦克大战

效果图:

进入《坦克大战》游戏主界面

点击开始菜单,即可进入游戏:

使用W/A/S/D控制坦克移动,使用J发射子弹

消灭所有坦克游戏获得胜利,被击中后,游戏将会结束:

完整代码见下文,需要准备一个进入坦克大战的音乐声音,放在TankVs.java代码文件的同路径的shengyin文件夹下。(没有也可以)

代码运行方法:

1,在以及配置好java JDK的情况下,将下面的完整的代码复制到并粘贴到记事本内,并将后缀.txt改为.java,文件命名为TankVs.java。

2,运行cmd,使用javac TankVs.java命令编译该java文件,编译成功后,使用java TankVs 命令即可运行游戏。

//以下为完整的坦克游戏代码

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

import java.util.*;

import java.io.*;

import javax.sound.sampled.*;//导入声音类包

public class TankVs extends JFrame implements ActionListener,Runnable

{

OverPanel op=null;

WinPanel wp=null;

FirstPanel fmp=null;

MyPanel mp=null;

JMenuBar jmb=null;

JMenu jm=null;

JMenuItem jmi=null;

public static void main(String[] args)

{

TankVs tk1=new TankVs();

}

public TankVs()

{

fmp=new FirstPanel();

jmb=new JMenuBar();

jm=new JMenu("开始");

jmi=new JMenuItem("开始游戏");

jm.add(jmi);

jmb.add(jm);

this.setJMenuBar(jmb);

this.add(fmp);

jmi.addActionListener(this);//添加单击事件监听

this.setSize(1000,800);

this.setLocation(200,100);

this.setTitle("坦克大战");

//文件的路径自己改一下

this.setIconImage(new ImageIcon("D:\\JAVA\\高级\\坦克大战\\image\\tank.jpg").getImage());

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setResizable(false);

this.setVisible(true);

Thread t=new Thread(fmp);

t.start();

}

public void actionPerformed(ActionEvent e)

{

if(fmp!=null){this.remove(fmp);}

if(op!=null){this.remove(op);}

if(wp!=null){this.remove(wp);}

mp=new MyPanel();

mp.repaint();

this.addKeyListener(mp);//添加键盘事件监听this.add(mp);

Thread t=new Thread(mp);

t.start();

this.setVisible(true);

Thread t1=new Thread(this);

t1.start();

shengyin sy=new shengyin(".\\shengyin\\tank.wav");

sy.start();

}

public void run()

{

while(true)

{

try

{

Thread.sleep(50);

}

catch(Exception e){}

if(this.mp.dtk.size()==0)

{

try

{

Thread.sleep(1000);

}

catch(Exception e){}

this.wp=new WinPanel();

this.add(wp);

this.remove(mp);

this.setVisible(true);

}

if(this.mp.mt.shengming==false)

{

try

{

Thread.sleep(1000);

}

catch(Exception e){}

this.op=new OverPanel();

this.add(op);

this.remove(mp);

this.setVisible(true);

}

}

}

}

class FirstPanel extends JPanel implements Runnable

{

int times=0;

public void paint(Graphics g)

{

super.paint(g);

g.fillRect(0,0,800,600);

if(times%2==0)

{

g.setColor(Color.yellow);

Font myFont=new Font("华文行楷",Font.BOLD,80);

g.setFont(myFont);

g.drawString("坦克大战",230,300);

}

}

public void run()

{

while(true)

{

try

{

Thread.sleep(500);

}

catch(Exception e){}

times++;

this.repaint();

}

}