赛高游戏引擎重构(二)Game Config

来源:互联网 发布:淘宝上的皮鞋 编辑:程序博客网 时间:2024/05/06 11:54

重构任务

1.把 Game Config 的 json 配置序列化为类,去掉一大堆接口
2.把 Game Launcher 中加载图片的逻辑分离开来

重构前

1.TGEGameConfig 非常大体积,一大堆接口:

这里写图片描述

这里写图片描述

skin.json 每扩展一个字段 TGEGameConfig 都要扩展一个方法,例如加一个:

这里写图片描述

需要加一个方法:

这里写图片描述

2.TGEGameLauncher 下面有几个加载图片的方法,放在这里有点奇怪:

这里写图片描述

重构思路

1.skin.json 本身就是一个 json 字典,所以建模,把 json 转换为 model,就不需要每加一个字段就加一个解析的方法了。

2.对于读取图片的接口,由于几乎每个接口都要用到 TGEGameLauncher 的 TGEGameConfig 类,有几个接口要用到 TGELocationsRuntime 和 TGEScenesRuntime 类,所以不能把读取图片的逻辑放在 TGEGameConfig 或者任意一个 runtime 类中,避免各个类知道彼此而耦合,所以最后还是把这段逻辑放在 TGEGameLauncher + Resource 这个 Category 中。

重构后

1.TGEGameConfig 更加清爽:

这里写图片描述

建模后的 Skin Models:

这里写图片描述

如果需要加字段,就直接在 Model 中增加,并且在 Mapper 方法中加上字段。扩展较为方便。

这里写图片描述

2.参加 TGEGameLauncher+Resource,其中读取图片用 TGESandboxHelper 和 TGEImageCache 来读取和缓存。
以后需要增加读取音乐素材的逻辑也可以在这里写。

0 0