面向对象程序综合设计—课程设计
一、项目简介
功能描述:
参考git地址或博客地址:
https://gitee.com/gitzzh20/monopoly
个人负责任务:
土地类、骰子类的策划编写,玩家头像、背景音乐和部分界面的设计。
团队博客链接:
https://www.cnblogs.com/ye736660997/p/14354210.html
二、功能架构图
三、个人任务简述
完成的任务与功能:
四、本人负责功能详解
1. *面向对象设计:
2. *背景音乐功能:
模块采用的技术:
通过AudioClip类来实现音乐播放、循环等操作。AudioClip支持的音乐格式有.wav、.mid、AIFF、AU、RMF,格式要求相当严格。AudioCLip基本的方法有:play()播放依次声音;loop()循环播放音乐;stop()停止播放。
难点及解决方法:
在开始使用格式为.flac的音乐资源文件时无法播放,后来经过查阅发现AudioClip类不支持.flac的音乐格式。修改后AudioClip播放截取的一段wav文件没有声音,让我纠结了很久。最后发现是因为wav文件内容没有写文件尾,而对于格式要求严格的AudioClip而言是无法识别的。在修改后解决了问题。
关键代码截图
3. *游戏界面设计
模块采用的技术:
JavaFx框架。
难点及解决方法:
这是第一次接触JavaFX技术,在刚开始对JavaFX的概念还是有点模糊的。经过查阅资料并进行学习后,掌握了基于JavaFX技术进行界面设计的基本方法,并编写了程序的开始界面(玩家的命名界面)。
关键代码截图
4. *土地类设计
模块采用的技术:
面向对象设计,父类的继承。
简述:
在对地图上的土地模块进行设计时,以基本父类Land为基础,拓展设定了房产Estate和特殊地点SpecialPlace,考虑到大富翁游戏场景中的随机事件触发,便在土地中加入了随机事件RandomEvent。
关键代码截图
5. 人物头像设计
简述:
在组长对GUI进行基础设计后,玩家头像需要48×48格式的图片,经过网上资源的载取后按要求对其进行格式编辑。起初以为48*48是横纵百分比,调整后发现大小不太符合要求,在查询后发现要调整的是横纵像素,但是画图软件里的像素由于原图比例的原因无法修改为48×48格式的图片,在查阅方法后使用其他编辑软件解决了这个问题。
6. 骰子功能
模块采用的技术:
Random类产生随机数。
简述:
利用Random类产生符合要求的随机数并赋给骰子的点数num。
关键代码截图
五、课程设计感想
这是我第一次接触游戏类编程,对于JavaFX还比较陌生。刚开始讨论的时候制定了想要实现的基本功能和界面的模型,但是在设计时却遇到了一些问题,不过经过队内的讨论很快都解决了。在编写自己负责的模块时,会遇到一些没有见过的功能需求,经过资料查找和JDK的查阅,很快掌握了一些新类的用法,并使用它们实现了所需要的功能。此次课程设计不仅让我回顾了之前所学的知识,同时也让我学到了一些新的知识,受益良多。
六、展望
-
-
在背景音乐播放模块的程序没有做到更全面的操作,例如背景音乐静音、关闭等操作。
-
在背景音乐播放模块的调用过程中,会出现在切换界面时没有声音的现象,经过查询发现使用的AudioClip类是一个废弃类,在程序运行过程中表现不稳定,后来便注释掉了这个模块的代码,并打算再查找播放背景音乐能够使用的新技术,并添加到程序中代替原来的不稳定代码。
-
在对类进行设计时,根据游戏原本的背景还有许多可以拓展的功能,在这次课程设计中只实现了部分,之后会不断挖掘并对程序进行完善。
-
-
在课程设计后我会进一步学习Java相关的知识,了解JavaFX的游戏引擎开发并尝试用其进行编程开发,在本次课程设计的程序中完善并拓展新的功能,优化界面UI的观感,提高程序的运行稳定性。