java写的坦克大战简易版
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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
}