我正在创建我的第一个iPhone游戏 - 我有OOP背景,特别是C ++,所以我对如何在保持功能的同时最好地逻辑设置图层提出了一些问题。
目前我想让我的游戏有三个主要层次:
注意我在这里使用了WANT这个词 - 因为在我的生活中,我经常不得不移动逻辑对象,只是为了在Cocos2d和太空管理器结构中工作。
以下是我正面临的一些问题
我错过了一些非常明显的东西吗?是否有核心理解我不会得到的图层?越来越多我觉得我被框架所推动,在一个类中构建整个游戏,只是将图层用作场景。
有其他人有这些问题吗?我接近游戏的架构错了吗?任何帮助都会非常感激。
先谢谢你们!
答案 0 :(得分:4)
嗯,每场比赛都不一样。在cocos2d论坛上有很多关于discussions的好architecture,有些人喜欢使用MVC方法,有些人喜欢使用Actor
隐喻来包含物理对象等。
这是我的方法:
CCLayer
个对象(GameLayer和HUDLayer)作为一个CCScene
(GameScene)的子节点。这些是“视图”对象。GameController
单例,可以更改游戏状态(也存储在GameController中或单独的文件中。)您也可以将CCScene子类化并将其称为控制器。GameLayer
负责渲染游戏关卡的图形和其中的所有演员;它还通过触摸事件处理游戏输入。HUDLayer
放置在比GameLayer更高的z-index处,显然拥有HUD和按钮的所有CCSprite对象。HUDLayer
和GameLayer
之间的互动。GameController
执行所有状态更改和游戏操作。这只是我的方法,因为它适用于我目前的游戏,但绝不是最终的答案。
我建议您考虑使用Actor
paradigm作为物理对象 - SpaceManager做得不错,但您不一定总是希望物理对象扩展CCSprite。