# 国王冲刺+ **Repository Path**: chen-yuettt/king-sprint2 ## Basic Information - **Project Name**: 国王冲刺+ - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-10-20 - **Last Updated**: 2024-11-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # WordParkourGame 单词跑酷游戏,采用MVC框架,项目层次及类的说明如下 # Application Application为应用实现层,使用Framework中定义的框架,Application包下为具体逻辑业务实现 该包下各层如下: **Game类**:全局管理点,挂载在Game物体上,该物体全程存在,不会销毁,一些跨场景的物体可临时挂载在下面,如加载进度条,它也管理这对象池、全局游戏数据、声音模块等 ## 1.Model 数据模型层,当前游戏主要有关卡数据和用户答题相关数据,两个类中有详细注释 ## 2.View Spawner类当初设计在这里优点问题,该类是生成游戏中各种物体的,如云、树木、石头等,这些物体都由对象池管理器生命周期,考虑到场景中物体与游戏角色交互后会修改UI层的相关数据,如碰到金币后上方UI的金币数会增加,故将其放在UI层,优化方向为场景物体逻辑与UI数据逻辑分离,MVC可以解决这问题。 UIs包中游戏中所有UI模块的类,其中较为复杂的UI类为UIAnswer,该类是题目选取和答题选择的核心类,方法较多,优化方向可以考虑部分逻辑分离。 ## 3.Controller MVC的controller层,MVC的View发出命令,框架找到对应的controller执行相关处理,当前项目的主要处理事件为:最初初始化、进入场景、退出场景、关卡开始、关卡结束 ## Args 该包中的类只是一种封装的数据结构,作为发送给Controller的命令参数 ## Data 该包的类为解析 配置文件后实例化的关卡数据和单词数据,Level在当前项目没有使用,可作为以后多个关卡的预留类,也可删除 Word类为解析Resources下Words的json文件后得到,具体的加载过程在StaticData类中 ## Misc 各种工具类 - Consts:常量配置信息 - CoronaDT:游戏中答题轮盘的动画控制脚本 - GoldDT:金币动画控制脚本 - MathTools:单词抽取方式,实现答对的少出现,答错的多出现,使用随机权重控制 - Saver:保存游戏进度,当前项目没用,可删除 - SceneLoadProcess:场景间加载的进度条实现 - Tools:工具类,主要是文件读取和解析的方法 ## Objects 游戏中出现的除UI外的物品:敌人、环境物体、金币(奖励物品)、玩家角色 ## StaticData 游戏中全局数据,使用单例的方式进行初始化和获取 GameData:玩家最后的结算数据,在玩家游戏中进行记录,最后结算,结算后清空 StaticData:所有的核心数据,GameData结算的数据也会叠加到此处,此处可优化,使用配置文件,而不是在类中用Dictionary # Framework MVC框架包,核心在于注册事件与视图,传递事件与生成对应的controller处理相应事件 Singleton:单例模板 Sound:游戏音频管理脚本,考虑到几乎所有的游戏都需要声音管理,所有放到框架层