java写的坦克大战简易.docx
《java写的坦克大战简易.docx》由会员分享,可在线阅读,更多相关《java写的坦克大战简易.docx(19页珍藏版)》请在三一办公上搜索。
1、java写的坦克大战简易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 j
2、m1=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(游戏); /设置助记符 jm1.setMne
3、monic(G); jmi1=new JMenuItem(开始新游戏); 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.addActionLis
4、tener(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.setDefaultCloseOperati
5、on(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.addKeyList
6、ener(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(
7、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
8、 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
9、(Exception e) / TODO: handle exception times+; /重画 this.repaint; /我的面板 class MyPanel extends JPanel implements KeyListener,Runnable /定义我的坦克 Hero hero=null; /判断继续上局还是新游戏 /定义敌人的坦克组 Vector ets=new Vector; Vector nodes=new Vector; /定义炸弹集合 Vector bombs=new Vector; int enSize=5; /定义三张图片 Image image1=null;
10、 Image image2=null; Image image3=null; /构造方法 public MyPanel(String flag) /恢复记录 Recorder.getRecording; hero=new Hero(30,231); if(flag.equals(newGame) /初始化敌人的坦克 for(int i=0;ienSize;i+) /创建一辆敌人的坦克对象 EnemyTank et=new EnemyTank(i+1)*50,0); et.setColor(0); et.setDirect(2); /将MyPanel的敌人坦克向量交给该敌人坦克 et.setEt
11、s(ets); /启动敌人的坦克 Thread t=new Thread(et); t.start; /给敌人的坦克添加一颗子弹 Shot s=new Shot(et.x+10, et.y+30, 2,1); et.ss.add(s); new Thread(s).start; ets.add(et);/加入 else nodes=new Recorder.getNodesAndEnNums; /初始化敌人的坦克 for(int i=0;inodes.size;i+) Node node=nodes.get(i); /创建一辆敌人的坦克对象 EnemyTank et=new EnemyTank
12、(node.x,node.y); et.setColor(0); et.setDirect(node.direct); /将MyPanel的敌人坦克向量交给该敌人坦克 et.setEts(ets); /启动敌人的坦克 Thread t=new Thread(et); t.start; /给敌人的坦克添加一颗子弹 Shot s=new Shot(et.x+10, et.y+30, 2,1); et.ss.add(s); new Thread(s).start; ets.add(et);/加入 /*try image1=ImageIO.read(new File(/bomb_1.gif); ima
13、ge2=ImageIO.read(new File(/bomb_2.gif); image3=ImageIO.read(new File(/bomb_3.gif); catch (Exception e) e.printStackTrace; / TODO: handle exception */ /播放开战声音 AePlayWave apw=new AePlayWave(F:myjavaday9坦克大战TankGamae13src111.wav); apw.start; /初始化图片 image1=Toolkit.getDefaultToolkit.getImage(Panel.class.
14、getResource(/bomb_1.gif); image2=Toolkit.getDefaultToolkit.getImage(Panel.class.getResource(/bomb_2.gif); image3=Toolkit.getDefaultToolkit.getImage(Panel.class.getResource(/bomb_3.gif); /画出提示信息 public void showInfo(Graphics g) /画出提示信息坦克 this.drawTank(100, 320, g, 0, 0); g.setColor(Color.black); g.dr



- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 坦克 大战 简易

链接地址:https://www.31ppt.com/p-3159628.html