项目介绍
FlappyCharacter,基于falppybird的游戏,稍微更改了一些。游戏中玩家必须控制一个,跨越由各种不同长度水管所组成的障碍。我们的程序支持玩家自选角色。
小组成员及分工
团队成员 | 分工 | 个人博客链接 |
---|---|---|
网络1912黄雨冰 (组长) | MenuJframe界面(不包括music),GamePanel的run部分 | 链接 |
网络1912陈璧君(成员 ) | GameClient和ImageSelection,GamePanel的除run以外的部分 | 链接 |
网络1912甘梨梨(成员 ) | HelpPanel和MenuJframe的music | 链接 |
git地址
部分提交截图:
参考代码
前期调查
首页(目录界面)
游戏开始前的提示
游戏界面
功能框架图
类图
运行结果展示
目录面版
角色选择面版
游戏面版
模块及关键代码
MenuJframe模块
-
按钮:设置了两个按钮,“开始游戏”连接着后面的角色选择界面,用于切换界面;“游戏介绍则会弹出消息提示框”
-
背景面版:先创造容器和自定义的背景面版,然后用awt将图画在背景面版上,要注意的是,加入容器的先后顺序是有优先级的,如果背景先加,再加按钮,会导致按钮显示不成功。
-
Gif的添加,与背景面版相似,都是先将其显示在组件上,再添加组件
-
音乐播放功能:需要获取音频输入流,然后通过getFormat来获取编码格式,然后进行格式转换等系列的操作
ImageSelection模块
- 运用swing和AWT技术,新建一个frame窗体,然后再新建一个按钮并将图片贴在按钮上,通过动作监听来判断选择的角色形象并弹出提示框进行确认,将形象传参到游戏界面中;同时为frame窗体添加背景图片和文字标签提示
GamePanel模块
-
游戏参数设计
-
角色、管道、背景的移动
-
碰撞检测和分数的计数
GameClient模块
- 游戏窗口布局:使用swing和AWT技术,实例化游戏面板和辅助面板,设置总体窗口布局
HelpPanel模块(计分功能)
-
getRocord的功能是从文件中读取当前最高的成绩
-
writeRecord方法功能将数据写入文件中保存
项目代码扫描及改正
-
扫描
-
改正(还有一个if语句需要带括号)
-
改正后:
总结
- 不足
- gif图片,无法脱离组件单独显示。
- 管道变化较为单一,只是中间通道的高低变化。
- 界面,少了个地面的设计,下端管道应该在地面以上是更好的。
- 一开始进入界面就一直循环播放同一首歌曲,无法暂停或是切换。
- 展望:
- 增设用户界面,添加注册与登录
- 拓展最高记录为排名,设置为排行榜。
- 添加联机的功能,可以多个用户同时进行游戏
- 增加游戏难度,如管道移动速度变快、管道间通道会变化、角色下降速度变快等。