java写的坦克大战简易版

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

MyTankGame2.java

package test;

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

//import java.io.*;

import java.util.*;

class MyTankGame2 extends JFrame implements ActionListener {

MyPanel mp=null;

//定义一个开始的面板

MyStartPanel msp=null;

//做出我需要的菜单

JMenuBar jmb=null;

//开始游戏

JMenu jm1=null;

JMenuItem jmi1=null;

//退出系统

JMenuItem jmi2=null;

//存盘退出

JMenuItem jmi3=null;

JMenuItem jmi4=null;

public static void main(String[] args)

{

//System.out.println("Hello World!");

MyTankGame2 mtg=new MyTankGame2();

}

//构造方法

public MyTankGame2()

{

//创建菜单及菜单选项

jmb=new JMenuBar();

jm1=new JMenu("游戏(G)");

//设置助记符

jm1.setMnemonic('G');

jmi1=new JMenuItem("开始新游戏(N)");

jmi2=new JMenuItem("退出游戏(E)");

jmi3=new JMenuItem("存盘退出游戏");

jmi4=new JMenuItem("继续上局游戏");

jmi4.addActionListener(this);

jmi4.setActionCommand("continueGame");

jmi3.addActionListener(this);

jmi3.setActionCommand("saveExit");

jmi2.setMnemonic('E');

//对jmi1进行响应

jmi1.addActionListener(this);

jmi1.setActionCommand("newGame");

jmi2.addActionListener(this);

jmi2.setActionCommand("exit");

jm1.add(jmi1);

jm1.add(jmi2);

jm1.add(jmi3);

jm1.add(jmi4);

jmb.add(jm1);

msp=new MyStartPanel();

Thread t=new Thread(msp);

t.start();

this.setJMenuBar(jmb);

this.add(msp);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setSize(600,450);

this.setVisible(true);

}

@Override

public void actionPerformed(ActionEvent e) {

//对用户不同的点击进行不同的处理

if(e.getActionCommand().equals("newGame"))

{

mp=new MyPanel("newGame");

Thread t=new Thread(mp);

t.start();

//先删除旧的面板

this.remove(msp);

this.add(mp);

//注册监听

this.addKeyListener(mp);

//显示

this.setVisible(true);

}

else if(e.getActionCommand().equals("exit"))

{//保存击毁敌人的数量

Recorder.keepRecording();

System.exit(0);

}

//对存盘退出做处理

else if(e.getActionCommand().equals("saveExit"))

{

//工作

Recorder re=new Recorder();

re.setEts(mp.ets);

//保存击毁敌人的数量和敌人的坐标

re.keepRecAndEnemyTank();

//退出

System.exit(0);

}

else if(e.getActionCommand().equals("continueGame"))

{ //

mp=new MyPanel("con");

//mp.flag=;

Thread t=new Thread(mp);

t.start();

//先删除旧的面板

this.remove(msp);

this.add(mp);

//注册监听

this.addKeyListener(mp);

//显示

this.setVisible(true);

}

}

}

class MyStartPanel extends JPanel implements Runnable

{ int times=0;

public void paint(Graphics g)

{

super.paint(g);

g.fillRect(0, 0, 400, 300);

//提示信息

if(times%2==0)

{

g.setColor(Color.yellow);

//开关信息的字体

Font myFont=new Font("华文新魏",Font.BOLD,30);

g.setFont(myFont);

g.drawString("stage:1", 150, 140);

}

}

@Override

public void run() {

// TODO Auto-generated method stub

while(true)

{

//休眠

try {

Thread.sleep(100);

} catch (Exception e) {

// TODO: handle exception

}

相关文档
最新文档