Cocos2d iphone 帮助逻辑地设置好游戏设计的层(包括SpaceManager物理、音乐和游戏逻辑) 我在创建我的第一个iPhone游戏的过程中——我有一个OOP的背景,特别是C++,所以我在如何保持逻辑的层次上最好地设置一些问题。
目前,我希望我的游戏有三个主要层:Cocos2d iphone 帮助逻辑地设置好游戏设计的层(包括SpaceManager物理、音乐和游戏逻辑) 我在创建我的第一个iPhone游戏的过程中——我有一个OOP的背景,特别是C++,所以我在如何保持逻辑的层次上最好地设置一些问题。,cocos2d-iphone,chipmunk,layer,Cocos2d Iphone,Chipmunk,Layer,目前,我希望我的游戏有三个主要层: HUDLayer(屏幕上的所有静态对象都在这里-游戏控件、用户分数、暂停按钮等) PlayLayer(玩家、主游戏循环和所有游戏逻辑) 关卡层(与播放器交互的关卡图像和关卡物理对象,以及特定于该关卡的背景音乐) 请注意,我在这里使用了“需要”这个词,因为在我的一生中,我必须不断地移动逻辑对象,以便在Cocos2d和spacemanagers结构中工作 下面是我面临的一些问题 我希望我的PlayLayer成为导演加载的场景,但是如果我这样做,那么所有的HU
- HUDLayer(屏幕上的所有静态对象都在这里-游戏控件、用户分数、暂停按钮等)
- PlayLayer(玩家、主游戏循环和所有游戏逻辑)
- 关卡层(与播放器交互的关卡图像和关卡物理对象,以及特定于该关卡的背景音乐)
- 我希望我的PlayLayer成为导演加载的场景,但是如果我这样做,那么所有的HUDLayer对象都会隐藏在PlayLayer后面,并且不会像他们应该呆在的地方,因此HUDLayer是我的场景,我必须这样做只是为了让它工作
- 我想在关卡层播放背景音乐(通过simpleAudioEngine playBackgroundMusic),因为我希望不同关卡有不同的音乐。到目前为止,我唯一能让背景音乐发挥作用的方法就是把它放在最上面的一层,也就是说,在这个例子中是HUD层
- 因为我必须使用SpaceManagerCoCoCS2D对象的一个实例来创建物理实体——似乎我的关卡层必须被删除,并合并到我的PlayLayer中,否则我会有一个噩梦,那就是试图检测玩家和关卡之间的碰撞
提前谢谢各位 每个游戏都不一样。cocos2d论坛上有很多关于的好东西,有些人喜欢使用MVC方法,有些人喜欢使用
Actor
隐喻来包含物理对象,等等
以下是我的方法:
CCLayer
对象(游戏层和HUDLayer)作为一个CCScene
(游戏场景)的子节点。这些是“视图”对象GameController
singleton,可以对游戏状态进行更改(也存储在GameController中,或存储在单独的文件中)。您还可以将CCScene子类化并调用该控制器GameLayer
负责渲染游戏级别和其中所有参与者的图形;它还处理通过触摸事件获取游戏输入HUDLayer
被放置在比游戏层更高的z索引上,并且显然拥有所有用于HUD和按钮的CCSprite对象HUDLayer
和GameLayer
之间的交互通过GameController进行管理GameController
执行所有状态更改和游戏操作我建议您考虑使用一个用于物理对象的应用程序——SpaceManager做得不错,但您不一定总是希望物理对象扩展CCSprite。嗯,每个游戏都是不同的。cocos2d论坛上有很多关于的好东西,有些人喜欢使用MVC方法,有些人喜欢使用
Actor
隐喻来包含物理对象,等等
以下是我的方法:
CCLayer
对象(游戏层和HUDLayer)作为一个CCScene
(游戏场景)的子节点。这些是“视图”对象GameController
singleton,可以对游戏状态进行更改(也存储在GameController中,或存储在单独的文件中)。您还可以将CCScene子类化并调用该控制器GameLayer
负责渲染游戏级别和其中所有参与者的图形;它还处理通过触摸事件获取游戏输入HUDLayer
被放置在比游戏层更高的z索引上,并且显然拥有所有用于HUD和按钮的CCSprite对象HUDLayer
和GameLayer
之间的交互通过GameController进行管理GameController
执行所有状态更改和游戏操作