- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
坦克大战系统《Java程序开发实训》综合实训报告
《Java程序开发实训》综合实训报告
题目: 坦克大战系统
姓名: 方庆
学号: 2010203206
班级: 10软件(2)班
系统实现的主要功能及运行结果截图
选择的语言的原因
游戏本身是一种娱乐方式,带给人无尽的乐趣,而且游戏行业的发展也将是带动周边行业的发展。同样对做出游戏的人的要求也会越来越高一满足游戏爱好者的要求。本次期末设计就是设计一种娱乐性较强的小游戏坦克大战,说到大战其实是不敢当的。但游戏基本拥有可玩性。java语言是一种跨平台,适合与分布计算环境的面向对象编程语言,java主要用在web开发,手机游戏及一些平台游戏的开发,他有很好的跨平台性。所以本次的设计坦克游戏选择的是java。
系统软件的软件环境
1.网络服务器操作系统:Window是 XP以上
2.开发工具:Eclipse
3运行环境:J2sdk
4.编程语言:java语言。
人机对战模式功能
1.能够发射子弹打击敌人2.敌人能够移动3.能够模拟爆炸4.能够产生障碍
5能够增长生命6.能够使用超级子弹
坦克可以发射子弹
玩家坦克被击中血量减少。
被击中的坦克发生爆炸并且吃血块可以加血量。
玩家坦克可以从把方向发射超级子弹
自己的TankHealth为=0时,。说明玩家坦克已死亡。游戏结束
本系统的坦克大战是基于java语言设计的开发,具有较高的人工智能和相对的图形处理。游戏可一人作战每次电脑方有10辆坦克,
此一举消灭全部的敌方坦克为目的。在这过程中坦克有机会得到血块来添加自己的生命值。从而变得强大。也利用wall来形成阻击敌人。
游戏拥有开挂的功能。可以穿过墙体来攻击敌方坦克。还给玩家坦克
置了超级炮弹。从八个方向同时射出炮弹来摧毁敌方坦克。主要功能
简单罗列如下:
1.屏幕左上方显示游戏的状态,当玩家方坦克全数为0是游戏结束
2.敌方坦克只在空地上行走,不可通过Wall
3.游戏打坏敌方坦克后,可随机位置随机出现血块奖励。坦克经过该
位置可获得相应的生命值加成。
4.玩家坦克的游戏资格和电脑坦克不同。
TankClient类设计流程
游戏系统类关联图
TankClient类
此类主要功能是利用java中包来实现的坦克游戏的主主窗口,以及对其他类调用和实例化
Blood类
此类主要定义坦克的生命值,有可以控制玩家坦克加血等操作方法。
Missile类
此类主要的是游戏中的炮弹类,其中有炮弹的大小以及移动等成员。
BaoZha类
此类定义的是坦克被攻击的爆炸,其中有坦克击毁的图形变化等成员。
Tank基本类功能分析
Tank类中,封装了一些变量属性,包括坦克自己的大小。运动速度方向控制、生死控制、好坏控制。Tank类中没有main函数,不是主类,它当中只封装一些变量属性和静态方法,被TankClient类调用来实现坦克的一系列动作Tank类主要方法如下:
1.getRect()方法
public Rectangle getRect(){
Return new Rectangle(x,y this.WIDTH,this.HEIGHT)
}
Rectangle类是碰撞检测的辅助类,通过得到子弹x,y的坐标。检测是否碰撞.
2.draw()方法:负责将所有的活动在屏幕上画出来;
3.move()方法:主要负责坦克的移动,包括八个方向的控制以及坦克一个移动速度;
4.boolean()方法:设定键盘事件。控制坦克移动
5.KeyRelesed()方法:处理按键抬起事件,安“J”键时,发射普通炮弹。抬起“K”键发射超级炮弹
6.locationDirection()方法:定义炮筒的方向,可以向八个方向发射炮弹
7.fire()方法:处理发送子弹的方法;
Missile类的基本功能分析
Missile(子弹)类和Tank类一样,只封装一些变量属性和静态方法,主要包括:子弹的大小,运动的速度,Missile类持有一个TankClient类的引用tc,TankClient类要执行发射炮弹操作是调用Missile类中的方法。Missile类中的方法主要如下:
1.draw()方法:负责画出子弹的所有活动
2.move()方法:先判断方向在移动。并且给一定的移动速度。
3.个头Rect方法:负责取得子弹的方形,为碰撞做准备;
4.hitTank()方法:检测子弹是否撞到坦克撞到返回ture,否则返回false。
BaoZha类的基本功能分析
BaoZha(爆炸)类也是封装自己的变量和方法的外部包装类,没有main方法,供TankClient主类需要时调用它的draw()方法,当子弹击中坦克是需要产生爆炸。下面是爆炸的图片:
综合实训过程中遇到的问题及解决方法
遇到的问题:
炮弹不消失
坦克出界
解决方案:
文档评论(0)