Java课程设计——坦克大战

 坦克大战——坦克类

一. 团队课程设计博客链接

      https://www.cnblogs.com/chenhuilin/p/10275664.html

二.个人负责模块和任务说明

模块:坦克类(玩家坦克类+电脑坦克类),代码整合

三.代码的提交记录截图

 

 

四.负责模块和任务详细说明

玩家坦克继承VisibleImage类,电脑坦克类继承自玩家坦克类,UML如下:

1.玩家坦克类

构造方法:

设置坐标位置(坦克出生的位置),坦克的图片,坦克的类型(玩家还是电脑),面板(可将坦克放置于当前面板中),代码截图如下:

 

 

移动方向:(上下左右)

左移思路:若当前方向不是左移,则将图片更改为左移图片,并且更新方向为左。

若经过碰撞检测发现不会产生碰撞,则改变坐标,并且要判断坐标是否在边界。

其他方向同理,代码截图如下:

 

碰撞检测:(墙与电脑坦克)

思路:获取当前坐标周围一定范围内的矩形边框,同时获取当前面板内的所有墙体对象,将其存放于数组中。将获得的矩形范围与所有墙体互相匹配,若符合则说明会产生碰撞。注意草地例外。

坦克碰撞检测同理,注意要将自己除外,并且要查看当前坦克是否存活,代码截图如下:

 

获得子弹:

根据上下左右的方向判断坦克头的位置,即子弹发射的方向的预设,以保证之后子弹朝预设方向移动(子弹的移动在子弹类里)

 

攻击方法:获得子弹,将子弹添加至面板(因为子弹有四个方向),启动攻击冷却线程。

 

触碰边界方法:根据屏幕与主窗体之间的大小关系,进而判断坦克是否移动到边界。

 

冷却线程:

使用sleep()方法,经过休眠之后,要注意改变线程的状态,将其改为可攻击。

 

其余setter,getter方法则不进行详细描述。

2.电脑坦克类

构造方法:继承自父类玩家坦克类,设置好初始方向,攻击冷却时间

移动方向:在父类的基础上,改变了父类的手动产生新方向,而是随机产生新方向,并且在该方向的移动时间是设置好的,检测是否达到边界同理:

 

碰撞检测,攻击方法的思路都与玩家坦克类相似,不同之处在于,玩家坦克类的方向是人为改动的,而电脑坦克类的方向是随机产生的,故要重写父类的这两个方法。

 攻击方法:只有4%的概率产生攻击,用随机数实现

 

 

 

五.课程设计感想

本次课设遇到的问题:

1. 由于本次课设是小组分工,所有组员要多进行交流,产生的问题要合力解决。

2. 在进行多关卡的设置时,我们对关卡的跳转处理不好,在游戏结束时,仍能够进入到下一关,经过排查,我们发现是因为level的值未及时调整,导致即时游戏失败,也能进入到下一关。

3. 对图片的路径产生了疑问,之后利用枚举将路径存储于字符串,方便之后的使用。

4. 在游戏时,我们发现每打死一个坦克,都会出现异常,最后发现是我们爆炸的图片没有处理好。

收获:

1. 学会了如何以团队的方式完成一个代码的整合。

2. 对Java有了更深层次的理解,对面向对象设计有了深刻的了解,Java与c语言不同,c语言是面向过程的编程,而JAVA编程思想是面向对象的编程,即要有万物皆对象的设计思想,要理解对象之间的关系,要了解一个对象有什么样的属性和什么样的方法。

 

转载于:https://www.cnblogs.com/hexintong99/p/10279072.html

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这是一个用java编写的坦克大战的游戏毕业设计! 目 录 摘 要 - I - Abstract - II - 引  言 - 3 - 第一章  绪 论 - 1 - 1.1 手机软件现状 - 1 - 1.2 游戏业务及J2ME概况 - 1 - 1.3 任天堂(Nintendo)的8位FC机器和Battle City背景介绍 - 3 - 1.4 本章小结 - 3 - 第二章 开发环境及相关技术的介绍 - 4 - 2.1 开发环境 - 4 - 2.2 Java语言的特点 - 4 - 2.3 关于JBuilder9 - 4 - 2.4 关于Wireless Tool Kit - 5 - 2.5 Java Appication Manager - 5 - 2.6 本章小结 - 5 - 第三章 程序结构、思想和相关技术 - 6 - 3.1 本程序需解决的有关技术问题 - 6 - 3.2 程序流程 - 7 - 3.3 绘图与MIDP2.0新增的GameCanvas包 - 9 - 3.3.1 提供低级绘制的Canvas类 - 9 - 3.3.2 Graphics类 - 9 - 3.3.3 PNG格式 - 9 - 3.3.4 Game包中的新功能 - 10 - 3.3.5 有关绘图的一些技术 - 11 - 3.4 坦克的控制和敌方的智能运行 - 11 - 3.5 子弹的运行和控制 - 12 - 3.6 RMS数据库系统 - 13 - 3.7 内存使用的最佳化 - 14 - 3.8 混淆器(Obfuscator)的使用 - 15 - 3.9 模拟器的相关调试 - 15 - 3.10 本章小结 - 16 - 第四章 程序分析和具体实现 - 17 - 4.1 游戏进入前的选择 - 17 - 4.2 主游戏逻辑及其涉及到的若干类 - 18 - 4.3 坦克的共同行为 - 20 - 4.4 玩家坦克的功能属性 - 21 - 4.5 敌人坦克的功能属性 - 21 - 4.6 子弹的运行和控制 - 23 - 4.7 记分系统 - 24 - 4.8 本章小结 - 26 - 第五章 总 结 - 27 - 5.1 本程序的总结和展望 - 27 - 5.2 经验和感想 - 27 - 致 谢 - 29 - 参考文献 - 30 - 附录 源程序代码 - 31 -
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值