/BrawlStars

同济大学软件学院2022年高级程序设计(荣)课程项目

Primary LanguageC++

ING_BrawlStars的项目文档

同济大学软件学院2022年高级程序设计(荣)课程项目

项目信息

项目成员 && 贡献占比

姓名 学号 贡献比 班级
吴可非 2150271 45% 朱宏明老师
王一凡 2152596 45% 朱宏明老师
张逸旸 2151415 10% 朱宏明老师

进度时间线

日期 功能
5.4 项目创建
5.29 绘制了第一张瓦片地图
5.30 构建基础场景
交互界面
6.1 设计封装了player类以及hero类
6.4 英雄选择界面
6.6 键盘及鼠标监听
6.7 添加不同英雄
6.7 物理碰撞
6.9 更新完整地图与障碍物
毒烟效果
死亡机制
6.10 初步实现摄像机类
草丛效果
增加血条、蓝条、能量值UI
发送表情、释放大招
6.11 加入暂停界面
UI、AI、菜单效果等细节的完善
整体美工
6.12 游戏结算界面
用户界面
音量音乐界面
资源预加载
随机AI
完成项目文档ppt

分工

姓名 完成项
吴可非 Hero类设计、物理碰撞、键盘及鼠标监听、普攻大招设计、死亡机制、camera设计、随机AI、PPT及release版本
王一凡 美工、瓦片地图制作使用、整体场景设计与切换、菜单、渲染机制、交互体验设计、UI设计、英雄信息全局协调、项目文档
张逸旸 音量音乐控制

游戏整体架构

image

类设计

image

主要难点与解决

  1. 零基础学it,小白哭啼啼。还好各路神仙来帮忙,助教哥哥慷慨施援手。组长read me把路引,学长代码解疑惑。通过阅读学长发的几本cocos2dx电子书以及csdn上的代码,才慢慢对游戏大体的构建有所了解。但因为版本的问题有很多也不适用,靠着个人的摸索以及组内的交流,终于实现了现在所看到的项目。
  2. Update的刷新帧率以及渲染方面会使界面出现卡顿,通过完善代码的执行效率以及预先加载游戏素材来解决问题
  3. 函数不同的调用顺序会导致运行结果不同,以及update的调用停止的合适位置、人物死亡的合适位置,通过log调试解决
  4. 瓦片地图与openl地图的坐标转换以及瓦片地图的读取

功能点完成度

基本功能

  • 游戏开始界面,背景音乐,音量控制,暂停及恢复功能,退出功能
  • 设计单人荒野决斗地图,并添加能量宝箱,能量可以给英雄增加生命值和伤害值
  • 设计五种英雄,不同英雄的普通攻击和超级攻击技能不同,对敌人普攻可以积攒大招。
  • 键盘控制人物走动,鼠标控制人物进行普通攻击和超级功能
  • 随着时间流逝,地图边缘出现毒圈并对人物造成伤害
  • 最终存活的玩家为吃鸡者
  • 游戏结算界面根据玩家的名次颁发不同数量的奖杯

其它功能

  • 人物可以发送表情
  • 每一局获得的奖杯可以积累

亮点

  • 利用多态机制实现父类指针调用子类函数,增加代码可重用性
  • 利用static,在不建立对象的情况下记录游戏数据
  • 利用Const.h管理全局常量
  • 采用驭鲛记影视素材,并自行绘制各种摁键,极具艺术美感。
  • 自行绘制的原创地图和精美UI

项目运行截图

菜单界面

image

英雄选择界面

image

游戏界面

image

结算界面

image

致谢

  • 感谢这一个学期来一起受苦的软荣人们
  • 感谢群里助教哥哥还有学长们的帮助,感谢软荣期末分享会
  • 感谢回家后一直理解我支持我天天给我做好吃的买水果哄我情绪的妈妈--wyf
  • 感谢小组的所有成员,大家都坚持下来了
  • 感谢@hezijian22等人的cocos2d-x 4.0学习笔记