我正在创建我的第一个 iPhone 游戏——我有 OOP 的背景,尤其是 C++,所以我有一些关于如何在保持功能的同时最好地逻辑设置层的问题。
目前我希望我的游戏具有三个主要层:
- HUDLayer(屏幕上的所有静态对象都在这里 - 游戏控件、用户得分、暂停按钮等)
- PlayLayer(播放器,主游戏循环和所有游戏逻辑)
- 关卡层(玩家与之交互的关卡图像和关卡物理对象,以及特定于该关卡的背景音乐)
请注意,我在这里使用了 WANT 这个词——因为在我的一生中,我必须不断地移动逻辑对象,只是为了在 Cocos2d 和 spacemanagers 结构中工作。
以下只是我面临的一些问题
- 我希望我的 PlayLayer 成为导演加载的场景 - 但如果我这样做了,那么所有 HUDLayer 对象都会被 PlayLayer 覆盖,并且不会像应有的那样保持原位,因此 HUDLayer 是我的场景,我不得不这样做只是为了让它工作
- 我想在 LEVEL 层播放背景音乐(通过 simpleAudioEngine playBackgroundMusic),因为我希望不同的关卡有不同的音乐。到目前为止,我让背景音乐起作用的唯一方法是将它放在最顶层,即在这种情况下是 HUDLayer
- 因为我必须使用 SpaceManagerCocos2d 对象的实例来创建物理实体 - 似乎我的关卡层必须被杀死并被合并到我的 PlayLayer 中,否则我会做噩梦来检测两者之间的碰撞球员和水平。
我在这里遗漏了一些非常明显的东西吗?对我没有得到的层有核心理解吗?我越来越觉得我被框架推动在一个类中构建整个游戏,并且只是将层用作场景。
还有其他人有这些问题吗?我接近游戏的架构错了吗?任何帮助将不胜感激。
提前谢谢各位!