package Stage6; /*韩顺平的最终版坦克(音乐效果没能添加上去,其他的基本遵照其教学) * ****************实现功能********************** *1.画出坦克; *2。发射子弹,攻击对方 *3.敌人坦克,防止重叠以及到界外 *4.显示出爆炸效果 * *5.开始提示面板; *6.退出游戏; *7.退出存盘; *8.恢复前句; * ****************未实现功能************************* *1.坦克再生及关卡设置,我的坦克生命减少; *2.音乐播放 *3.坦克图片,界面优化; *4障碍物 *5自己坦克范围设定 *6游戏设置; */ import javax.imageio.ImageIO; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.Vector; import java.io.*; public class MyTankGameFinal 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) { MyTankGameFinal aTank = new MyTankGameFinal(); } public MyTankGameFinal() { // 创建菜单及选项、 jmb = new JMenuBar(); jm1 = new JMenu("game(G)"); jm1.setMnemonic('G');// 设置快捷方式 jmi1 = new JMenuItem("开始新游戏"); jmi2 = new JMenuItem("退出游戏(E)"); jmi2.setMnemonic('E');// 助记符 jmi3 = new JMenuItem("存盘退出(C)"); jmi4 = new JMenuItem("继续上局(S)"); // 监听 jmi1.addActionListener(this); jmi1.setActionCommand("new"); jmi2.addActionListener(this); jmi2.setActionCommand("EXIT"); jmi3.addActionListener(this); jmi3.setActionCommand("save"); jmi4.addActionListener(this); jmi4.setActionCommand("goOn"); msp = new MyStartPanel(); Thread t = new Thread(msp); t.start(); // 添加 jm1.add(jmi1); jm1.add(jmi2); jm1.add(jmi3); jm1.add(jmi4); jmb.add(jm1); this.setJMenuBar(jmb); this.add(msp); this.setSize(750, 600); this.setVisible(true); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setTitle("坦克大战"); this.setLocation(750, 0); } public void actionPerformed(ActionEvent e) { // 对用户不同的点击做不同的处理 if (e.getActionCommand().equals("new")) { // 创建战场面板 mp = new MyPanel("new"); // 启动线程 Thread t1 = new Thread(mp); t1.start(); // 先删除旧的面板再加入新的 this.remove(msp); this.add(mp); // 注册监听 this.addKeyListener(mp); // 显示刷新JFrame this.setVisible(true); } else if (e.getActionCommand().equals("EXIT")) { // 用户要退出 // 先保存击毁数量 Record.keepRecord(); System.exit(0); }// 对存盘退出做处理 else if (e.getActionCommand().equals("save")) { new Record().setEts(mp.ets); // 其他工作 // 保存击毁敌人的数量和敌人的坐标 new Record().keepRecordAndEnemy(); // 退出游戏 System.exit(0); } else if (e.getActionCommand().equals("goOn")) { // 恢复上局游戏 // 创建战场面板 mp = new MyPanel("con"); // 启动线程 Thread t1 = new Thread(mp); t1.start(); // 先删除旧的面板再加入新的 this.remove(msp); this.add(mp); // 注册监听 this.addKeyListener(mp); // 显示刷新JFrame this.setVisible(true); } } }
![](http://hiphotos.baidu.com/n%CE%AC%BD%E2%CE%F6%BC%B8%BA%CE/pic/item/82beae1d9313b07ed506d6b40cd7912396dd8caf.jpg?v=tbs)