面向对象程序综合设计—课程设计

一、项目简介

功能描述:

参考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的观感,提高程序的运行稳定性。

posted @ 2021-01-29 19:20  BaiYi#  阅读(122)  评论(0编辑  收藏  举报