项目介绍

FlappyCharacter,基于falppybird的游戏,稍微更改了一些。游戏中玩家必须控制一个,跨越由各种不同长度水管所组成的障碍。我们的程序支持玩家自选角色。

小组成员及分工

团队成员 分工 个人博客链接
网络1912黄雨冰 (组长) MenuJframe界面(不包括music),GamePanel的run部分 链接
网络1912陈璧君(成员 ) GameClient和ImageSelection,GamePanel的除run以外的部分 链接
网络1912甘梨梨(成员 ) HelpPanel和MenuJframe的music 链接

git地址

链接于此

部分提交截图:

参考代码

链接于此

前期调查

首页(目录界面)

游戏开始前的提示

游戏界面

功能框架图

类图

运行结果展示

目录面版

角色选择面版

游戏面版

模块及关键代码

  • 按钮:设置了两个按钮,“开始游戏”连接着后面的角色选择界面,用于切换界面;“游戏介绍则会弹出消息提示框”

  • 背景面版:先创造容器和自定义的背景面版,然后用awt将图画在背景面版上,要注意的是,加入容器的先后顺序是有优先级的,如果背景先加,再加按钮,会导致按钮显示不成功。

  • Gif的添加,与背景面版相似,都是先将其显示在组件上,再添加组件

  • 音乐播放功能:需要获取音频输入流,然后通过getFormat来获取编码格式,然后进行格式转换等系列的操作

ImageSelection模块

  • 运用swing和AWT技术,新建一个frame窗体,然后再新建一个按钮并将图片贴在按钮上,通过动作监听来判断选择的角色形象并弹出提示框进行确认,将形象传参到游戏界面中;同时为frame窗体添加背景图片和文字标签提示

GamePanel模块

  • 游戏参数设计

  • 角色、管道、背景的移动

  • 碰撞检测和分数的计数


GameClient模块

  • 游戏窗口布局:使用swing和AWT技术,实例化游戏面板和辅助面板,设置总体窗口布局

HelpPanel模块(计分功能)

  • getRocord的功能是从文件中读取当前最高的成绩

  • writeRecord方法功能将数据写入文件中保存

项目代码扫描及改正

  • 扫描

  • 改正(还有一个if语句需要带括号)

  • 改正后:

总结

  • 不足
    • gif图片,无法脱离组件单独显示。
    • 管道变化较为单一,只是中间通道的高低变化。
    • 界面,少了个地面的设计,下端管道应该在地面以上是更好的。
    • 一开始进入界面就一直循环播放同一首歌曲,无法暂停或是切换。
  • 展望:
    • 增设用户界面,添加注册与登录
    • 拓展最高记录为排名,设置为排行榜。
    • 添加联机的功能,可以多个用户同时进行游戏
    • 增加游戏难度,如管道移动速度变快、管道间通道会变化、角色下降速度变快等。