- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件详细设计说明书
一、 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 ,画出与坦克一样颜色的子弹,以区别子弹是那一方发出来的。
5、 isHitWall() 方法
该方法是用来判断 Tank是否与障碍物发生碰撞
public boolean isHitWall() {
Wall w = null;
for (int i = 0; i tw.walls.size(); i++) {
w = tw.walls.get(i);
if (w.isHits(this.getRectangle())) {
return true;
}
}
return false;
}
6、 getRectangle()方法
该方法主要是用来检测是否发生了碰撞。
public Rectangle getRectangle() {
return
文档评论(0)