java课程设计--坦克大战

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

https://www.cnblogs.com/zwtcyt/p/12173572.html

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

墙体类,子弹类,道具类以及音效类的编写,部分GUI的编写

三.代码的提交记录截图

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

墙体类

主墙体即不可摧毁的墙体


该类为所有障碍物的父类,子类继承时改变里面draw方法

草地类

河流类

可摧毁的墙类

音效类

子弹类


子弹与碰撞检测


利用javafx中shape的intersect方法来得出两个组件重叠的部分,比较重叠部分的宽度来判断是否碰撞

部分GUI




利用Timeline来进行地图的绘制

绘制效果

五.课程设计感想

因为这一次我们编写界面用的是javafx而不是swing,我们需要学习一遍javafx再来写代码。在编写碰撞检测时,swing的语句和javafx语句并不相同,需要查找fx中特有的方法来实现。Java swing中的判断检测只需要调用Rectangle中的intersection方法,而fx并没这个方法,需要特别调用shape中的intersect方法,通过计算重叠部分的长宽来检测是否碰撞。
写音乐类的时候我方坦克被击中的时候,会同时播放子弹击中和
基地爆炸的音效,所以想到利用synchronized防止线程之间的互相干扰。
在经过大一的两个课设中,我深深体会到了,课设对于我们来说,就是一次期末总结以及对自己的锻炼,在课设中不仅仅老师可以清楚的看清我们本学期所学到的知识,还可以加强自己的能力,对自己的不足进一步学习,查缺补漏,在平时学习中,我们只是简单地在课本上学习知识,只有在课设中,我们才能根据需求来写代码,所以可以趁着课设我们既可以对自己平时的不足进行弥补,又可以得到电联。我还深深体会到了,在遇到问题时,可以先去百度寻求问题的答案,然后再根据自己的需求来改写代码。这样可以锻炼我们阅读代码的能力,这对于我们工作以后也是有益处的。