坦克大战详细设计说明书
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
1绪论 (1)
1.1开发背景………………………………………………………………………1.2开发思路………………………………………………………………………1.3开发工具………………………………………………………………………
2程序设计……………………………………………………………………………
2.1主要设计思路……………………………………………………………………
2.2思路设计实现……………………………………………………………………3程序简介………………………………………………………………………
3.1程序一些类的介绍……………………………………………………………
4程序运行与测试……………………………………………………………………
4.1程序开始………………………………………………………………………
4.2程序界面………………………………………………………………………
4.3系统启动测试………………………………………………………………
4.4子弹发射测试………………………………………………………………
4.5玩家移动测试………………………………………………………………
4.6信息发送测试………………………………………………………………
5程序有关代码………………………………………………………………………
5.1………………………………………………………………………
5.2………………………………………………………………………
5.3………………………………………………………………………
6………………………………………………………………………
6.1………………………………………………………………………
参考文献………………………………………………………………………
1绪论
1.1开发背景
随着信息社会的迅猛发展,人们对游戏的要求也越来越高
1.2开发思路
该游戏的界面使用了JA V A awt界面显示技术实现,游戏主窗口类TankClient继承了Frame类,重写了paint方法,在该方法中绘出游戏背景,各种元件和控件等。
游戏的每个组成部分都被封装为一个Java类,例如坦克对象被封装在Tank类中,该类提供了构建坦克对象方法、坦克上下左右移动方法、fire发射炮弹方法、keyReleased按键松开事件处理方法和keyPressed按键按下事件处理方法。炮弹类Missile,提供了移动方法;坦克攻击判定,坦克中保存一个isgood成员变量,判定是否是敌人坦克,在子弹飞行轨迹中判定是否有坦克,若有则判定击毁该坦克。
1.3开发工具
该坦克大战游戏是在Eclipse 集成开发环境中开发的,它目标是实现一个单机版本的人机对战游戏程序,该程序界面比较美观,操作灵活流利。具体实现了游戏界面布局设计、坦克图片绘制、子弹绘制、坦克移动、坦克对战,障碍墙绘制等功能。
坦克游戏结束的条件是,游戏中我方坦克守护的围墙区域被敌人击破,四面围墙被攻破则判定游戏结束。本游戏中为了增加趣味性,对坦克做了人工智能处理,即随机生成坦克的下一步移动方向,随机发射炮弹等。另外,在游戏地图上还增加了墙壁,分为普通墙壁和金属墙壁,普通墙壁一发炮弹即可击破。游戏地图上还绘制了河流、森林等图片,进一步模拟真实的游戏场景,使得该游戏更富有趣味性。
本游戏程序直接在eclipse开发环境中运行,建议使用jdk1.6版本,在eclipse直接右击工程名,选择run as Java Application即可正常运行程序,使用键盘上的方向键和S按键发射炮弹。
2程序设计
2.1主要设计思路
2.2成粗设计的实现
3.1有关类的介绍
TankWar类:
TankWar继承Frame类。
1、paint( )方法
paint( ) 方法主要实现对坦克类和子弹类,障碍物类和爆炸类等画到窗口上。坦
克类又分为MyTank和EnwmyTank 两类。对这两类用不同的颜色画到窗口上。
画子弹时通过传递坦克的颜色画出相应的子弹颜色。
子弹画坦克死亡则不再对其进行重画。
2、update( )方法。
update( ) 方法主要是为了解决,重画频率太快,paint( ) 方法还没有完成,重画
坦克时出现的闪烁现象。
通过双缓冲技术将所有东西画在虚拟图片上,一次性显示出来解决闪烁现象。
3、内部类KeyMon键盘监听
KeyMon继承KeyAdapter类。通过KeyMon类的监听,用户可以通过键盘控制
自己的坦克。
4、内部类MyTankWarThread
MyTankWarThread实现Runnable接口,通过MyTankWarThread实现对坦克的
重画,实现坦克的移动。
5、showFrame( )方法
showFrame( )方法主要是设置一个窗口及其各种参数。
Tank类
Tank类是实现Runnable接口的一个抽象类
1、Tank类的主要属性有:
int x; //坦克的位置
int y; //
int oldx; //坦克上一步的坐标
int oldy; //
Dir dir; // Tank方向的成员变量
int speed = 5;
boolean isLive = true;
2、Tank类提供各种的构造方法
Tank(int x, int y)
Tank(int x, int y, Dir dir)
Tank(int x, int y, Dir dir, TankWar tw)
根据不同的需要使用不同的构造方法。
3、drawTank ()方法
drawTank()方法根据坦克的类型不同可以画出不同类型的坦克和不同方向的坦
克。敌人的坦克用BLUE画出来,自己的坦克用RED颜色画出来,以区分敌我。
4、fire()方法
fire()方法的功能是实现打出一颗子弹,fire()方法调用了画坦克的颜色变量c ,