“坦克大战”游戏代码.doc

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
写这个游戏已经有一段时间了,一直在实现各种新功能,从最开始的地图上只有坦克,发子弹还是一个大问题到现在可以两个人一起玩,还是花了不少心思的,现在坦克的速度更快,电脑坦克也不会撞墙.虽然游戏性没有经典坦克大战那么强,但是还是可以用来休闲娱乐一下,这个用了很多最近学到的新知识,模仿俄罗斯方块,还有一些小技巧,比如可以同时按触发多个按键事件,对子弹的处理等.???? ??? 左边的坦克用W D S A控制移动,H发射子弹,每次最多出现5颗子弹,右边的坦克用上下左右箭头控制移动,L键发射子弹,互不干扰.Q键可以直接退出游戏,游戏结束后按Y键可以继续游戏.为了结构清晰游戏分为Mywar?? Shoot?? Tanks?? 3个类. ?? /********************MyWar***********************/?? package tank; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.util.Arrays; import java.util.Random; import java.util.Timer; import java.util.TimerTask; import javax.swing.JFrame; import javax.swing.JPanel; public class MyWar{ ?? ?public static void main(String[] args) { ?? ??? ?JFrame frame = new JFrame("坦克大战");//新建一个窗口 ?? ??? ?War war = new War();//创建一个War类的对象 ?? ??? ?frame.add(war);//把war添加到窗口中 ?? ??? ?frame.setSize(750,530);//窗口宽高 ?? ??? ?frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭时结束进程 ?? ??? ?frame.setLocationRelativeTo(null);//使窗口居中 ?? ??? ?frame.setVisible(true);//这句是干啥的? ?? ??? ?war.action();//启动(war)战斗,亲,可以游戏了! ?? ?} } class War extends JPanel{ ?? ?private boolean sUp,sDown,sRight,sLeft,sH;//定义右边坦克按键的开关 ?? ?private boolean sW,sD,sS,sA,sL;//定义左边坦克按键的开关 ?? ?public static final int WIDTH=750;//定义地图宽度 ?? ?public static final int HEIGHT=530;//定义地图高度 ?? ?private int score;//设置分数 ?? ?private boolean gameOver;//gameover=false表示游戏没有结束 ?? ?private Timer timer;//刚学的东西 ?? ?private int shootNum,shootNum1;//可以射击的子弹数,防止作弊 ?? ?MyTank[] myTank=new MyTank[2];//定义一个我方坦克对象数组 ?? ?EnemyTanks[] enemyTank=new EnemyTanks[5];//初始化敌人坦克的数量 ?? ?EnemyTanks newEnemyTank;//用来产生一辆敌人的坦克,补充死去的T_T ?? ?Random r = new Random(); ?? ?/**用于产生一辆新的敌人坦克,返回参数是EnemyTanks类型*/ ?? ?public EnemyTanks nextTank(){ ?? ??? ?int x = r.nextInt(2)*WIDTH;//随机x的值,坦克出生在角落 ?? ??? ?int y=r.nextInt(2)*HEIGHT;//随机y的值,坦克出生在角落 ?? ??? ?int step=r.nextInt(4)+1;//速度 ?? ??? ?int direct=r.nextInt(4)+1;//方向 ?? ??? ?int who = r.nextInt(3)+1;/

文档评论(0)

189****6472 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档