坦克大战源码

上传人:jiups****uk12 文档编号:52750512 上传时间:2018-08-25 格式:DOC 页数:46 大小:235KB
返回 下载 相关 举报
坦克大战源码_第1页
第1页 / 共46页
坦克大战源码_第2页
第2页 / 共46页
坦克大战源码_第3页
第3页 / 共46页
坦克大战源码_第4页
第4页 / 共46页
坦克大战源码_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《坦克大战源码》由会员分享,可在线阅读,更多相关《坦克大战源码(46页珍藏版)》请在金锄头文库上搜索。

1、坦克大战源码坦克大战源码 根据韩顺平老师视频所作/*坦克大战 4.0* 防重叠 */ package com.TankGame5; import java.awt.*;import javax.imageio.ImageIO; import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.io.File; imp

2、ort java.io.IOException; import java.util.Vector;public class MyTankGame5 extends JFrame implements ActionListener/提示面板 MyStartPanel msp=null; /游戏面板 MyPanel mp=null;/游戏菜单/开始游戏 JMenuBar jmb=null; JMenu jm1=null; /开始游戏 JMenuItem jmi1=null; /退出游戏 JMenuItem jmi2=null; /存盘退出 JMenuItem jmi3=null; /继续上一局 J

3、MenuItem jmi4=null;public static void main(String args) / TODO Auto-generated method stubMyTankGame5 bn=new MyTankGame5();/构造函数 public MyTankGame5() /创建菜单栏选项 jmb=new JMenuBar(); jm1=new JMenu(“游戏(G)“); /创建快捷方式 jm1.setMnemonic(G);jmi1=new JMenuItem(“开始新游戏(N)“); jmi1.setMnemonic(N); /注册监听 jmi1 jmi1.ad

4、dActionListener(this); jmi1.setActionCommand(“newgame“);jmi2=new JMenuItem(“退出该局游戏(Q)“); jmi2.setMnemonic(Q); /注册监听 jmi2 jmi2.addActionListener(this); jmi2.setActionCommand(“exit“);jmi3=new JMenuItem(“存盘退出游戏(C)“); jmi3.setMnemonic(C); /注册监听 jmi3 jmi3.addActionListener(this); jmi3.setActionCommand(“s

5、aveExit“);jmi4=new JMenuItem(“继续上一局(R)“); jmi4.setMnemonic(R); /注册监听 jmi4 jmi4.addActionListener(this); jmi4.setActionCommand(“continue“);jm1.add(jmi1); jm1.add(jmi4);/添加的顺序就是菜单的顺序 jm1.add(jmi3); jm1.add(jmi2);jmb.add(jm1); this.setJMenuBar(jmb);/先启动提示框 msp=new MyStartPanel(); this.add(msp);Thread t

6、1=new Thread(msp); t1.start();/mp=new MyPanel(); /this.add(mp); /注册监听 /this.addKeyListener(mp); / /启动 mp 线程 /Thread t2=new Thread(mp); /t2.start();/窗口大小 this.setSize(MyPanel.bx1+230,MyPanel.by1+150); this.setTitle(“坦克横行“); ImageIcon icon = new ImageIcon(“Images/yan.png“); this.setIconImage(icon.getI

7、mage(); this.setLocation(250,150); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true);Override public void actionPerformed(ActionEvent arg0) / TODO Auto-generated method stub if(arg0.getActionCommand().equals(“newgame“) /System.out.println(“英雄的到来“);/创建战场 mp=new MyPanel(“newga

8、me“); this.add(mp);/注册监听 this.addKeyListener(mp);/启动 mp 线程 Thread t2=new Thread(mp); t2.start();this.remove(msp); this.setVisible(true); /简单退出 else if(arg0.getActionCommand().equals(“exit“) /用户点击退出 /保存击毁的敌人 Recorder.keepRecording();System.exit(0); /存盘退出处理 else if(arg0.getActionCommand().equals(“save

9、Exit“) /System.out.print(“111“); /获取当前值 Recorder.setEts(mp.ets);/保存击毁的敌人和敌人的坐标 Recorder.keepRecAndEnemyTank();/退出 System.exit(0); /继续上一局 else if(arg0.getActionCommand().equals(“continue“) /创建战场 mp=new MyPanel(“continue“); this.add(mp); /注册监听 this.addKeyListener(mp);/启动 mp 线程 Thread t2=new Thread(mp)

10、; t2.start();this.remove(msp); this.setVisible(true);/开始提示面板 class MyStartPanel extends JPanel implements Runnable int times=0;public void paint(Graphics g) super.paint(g); g.fillRect(0, 0, MyPanel.bx1, MyPanel.by1);if(times%2=0 static int ensize=10;/敌人个数/定义炸弹集合 Vector bombs=new Vector();/信息集合 Vecto

11、r nodes=new Vector();/定义 2 个图片,一起组成爆炸效果 Image image1=null; Image image2=null; Image image3=null;/构造函数 public MyPanel(String flag) /恢复记录 Recorder.getRecording();/播放声音 AePlayWave ap=new AePlayWave(“D:CHENks.wav“); ap.start();/构造我的坦克 hero=new Hero(h,z);/构造初始敌人 this.startEnemyTank(flag);/初始化图片/下面的方法第一个爆

12、炸效果不明显 image1=Toolkit.getDefaultToolkit().getImage(Panel.class.getResource(“/beng.png“); image2=Toolkit.getDefaultToolkit().getImage(Panel.class.getResource(“/beng2.png“); image3=Toolkit.getDefaultToolkit().getImage(Panel.class.getResource(“/beng3.png“);/try /image1=ImageIO.read(new File(“shanshui.j

13、pg“); /image2=ImageIO.read(new File(“beng2.png“); /image3=ImageIO.read(new File(“beng3.png“); / catch (Exception e) / TODO Auto-generated catch block /e.printStackTrace(); /public void startEnemyTank(String flag) if(flag.equals(“newgame“) /构造敌方坦克 for(int i=0;i2) g.drawImage(image3, b.x, b.y, 30, 30,

14、 this); else if(b.life1) g.drawImage(image1, b.x, b.y, 30, 30, this); else g.drawImage(image2, b.x, b.y, 30, 30, this); /播放爆炸声音AePlayWave ap1=new AePlayWave(“D:CHENbz.wav“); ap1.start();/Hero 输了 if (Hero.counter = Hero.newlife ) /提示声音 AePlayWave ap = new AePlayWave(“D:CHENgameover.wav“); ap.start();

15、 audio+; /HERO 胜利! /没有敌人了就赢了 else if (Recorder.getEnlife() = MyPanel.ensize - EnemyTank.newlifeap.start(); audio+; /让 b 的生命值减小 b.lifeDown(); /减小到 0 就去掉 if(b.life=0) bombs.remove(b); /画敌方坦克 for(int i=0;iet.x/从文件恢复记录 static Vector nodes=new Vector();/完成读取 public Vector getNodesAndEnemy() try /创建 fr=new FileReader(“d:chenAllRecording.txt“); br=new BufferedReader(fr);String n=“; /先读取第一行 n=br.readLine(); deadenemy=Integer.parseInt(n);/用 split 分割从第二行开始取 while(n=br.readLine()!=null) /字符串 str 中从第一个字符起, /每遇到一个空格则切割为一个元素, /放入xyd 数组中String xyd=n.split(“ “);/这里的空格数与 keepRecAndEnemyTank()中/写入(

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号