- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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;//方向
i
您可能关注的文档
- 辽宁机场分布.doc
- 辽宁省2010年文史类专科批次.doc
- 辽宁省东北育才2010届高三第二次模拟考试(语文).doc
- 辽宁省五校2013届高三上学期期初联考语文试卷及答案.doc
- 辽宁省凌海市石山初级中学七年级历史上册 2.8中华文化的勃兴(一)问题评价单 新人教版.doc
- 辽宁省抚顺一中2009届高三第五次模拟考试(英语).doc
- 辽宁省本溪一中2012-2013学年高二语文第一次月考试题新人教版【会员独享】.doc
- 辽宁省本溪市2016年中考语文模拟试卷(解析版).doc
- 辽宁省部分重点中学协作体2009年高考模拟考试语文试题.doc
- 辽宁省锦州一中2012届下学期高三3月模拟试卷.doc
文档评论(0)