完整代码:https://download.csdn.net/download/weixin_55771290/87398961
1.1 项目背景
手机用户在休闲时倾向于玩一些类似于Flappy Bird、2048等游戏,这类游戏用户界面简单,游戏模式单一,单手即可操作,随着游戏地进行,游戏的难度会增加。随着手机用户地爆发式增长,这类游戏的需求量愈发庞大。StickToLast 是一款益智类游戏。主角陷于宇宙漩涡之中,被吸入中央的黑洞或者逃离该区域都无法被即将来到的救援部队拯救,只能停留在这一区域,躲避宇宙陨石,坚持的时间越久,被营救的希望越大,得分越高。
1.2 项目目标
为了适应手机用户日渐增加的游戏需求,项目旨在开发一款基于Android的、操作模式简单有趣的休闲益智积分类游戏。
1.3 项目受众
安卓手机用户。
1.4 运行环境
1.5 功能概述
- 用户可以选择开始游戏,暂停游戏
- 运行过程中,用户点击跳跃按钮可让游戏目标从低轨道跃迁到高轨道
- 用户操纵游戏目标收集轨道上的奖励目标来累加积分
- 用户需要跳跃来保证自己不会被吸入中间的黑洞
- 用户需注意躲避轨道上的障碍
- 得分也会随着时间增长
第2章 需求分析
2.1 StickToLast 用例图
2.2 游戏流程图
第3章 逻辑架构设计
引擎架构
游戏架构
第4章 模块划分
- 主角管理模块
- 功能:负责游戏中主角(方块)运动对象的位置变更和碰撞检测
- 设计模式:暂无
- 对应代码:Classes/BlockManager.cpp & Classes/BlockManager.h
- 怪物管理模块
- 功能:负责游戏中怪物(圆形)运动对象的位置变更
- 设计模式:暂无
- 对应代码:Classes/CircleManager.cpp & Classes/CircleManager.h
- 游戏实体模块
- 功能:定制不同的游戏,负责管理所有游戏模块生命周期(对游戏中的游戏提供统一的定制方法);
- 设计模式:单例模式(MainScene.cpp第29行左右)、工厂模式(CircleManager类和BlockManager的不同create函数)
- 对应代码:Classes/Entyity.h & Classes/Player.h & Classes/Circle.h & Classes/FloatBox.h
- 游戏成就模块
- 功能:记录用户成就,并随游戏进行实时更新用户成就
- 设计模式:暂无
- 对应代码:MainScene.cpp & MainScenge.h(核心函数:setScore()函数)
- 通用工具模块
- 功能:提供通用坐标计算服务和区域计算服务
- 设计模式:暂无
- 对应代码:Classes/Util.h & Classes/Util.cpp
第5章 游戏演示
使用apk文件进行安装,进入游戏界面
- 左下角按钮用于向外跳跃一圈,右下角按钮用于暂停
- 红色点为玩家,白色点为怪物,碰到怪物游戏结束,跳跃一次得一分
暂停和结束界面