我刚刚开始学习Cocos2d使用伟大的教程 Ray Wenderlich已经产生。不过,我已经到了我的HelloWorldScene主文件变得有点大的地步。组织文件在Cocos2d
我希望能够将精灵生成方法分类到一个文件,其他。方法转换为另一个等等,给我留下包含不同场景和init方法的核心级文件。
是否有可能将方法复制到新的.m文件中,并在需要时将它们带入HelloWorldScene.m中?
你如何组织你的游戏文件?
我刚刚开始学习Cocos2d使用伟大的教程 Ray Wenderlich已经产生。不过,我已经到了我的HelloWorldScene主文件变得有点大的地步。组织文件在Cocos2d
我希望能够将精灵生成方法分类到一个文件,其他。方法转换为另一个等等,给我留下包含不同场景和init方法的核心级文件。
是否有可能将方法复制到新的.m文件中,并在需要时将它们带入HelloWorldScene.m中?
你如何组织你的游戏文件?
我强烈建议分层您的游戏。它保持组织和整洁,减少任何一个文件中的代码量。
在cocos2d中,您应该注意3个类来实现此目的:
CCDirector,CCScene,CCLayer。你可以做的是,在单个场景(GameScene)中创建多个图层。例如: 拥有HUD,游戏界面,背景和前景。
这些都可以拆分成单独的CCLayers并在CCScene中加入到一起。
所以,现在你已经分手HelloWorld.m为: GameScene.m
HudLayer.m
GameInterfaceLayer.m
Background.m
Forground.m
导入所有的.h文件到您的后GameScene.h,然后您可以将每个图层添加到场景中,如下所示:
@implementation GameScene
+(CCScene){
HudLayer *hud = [HudLayer node];
[self addChild: hud z:3];
GameInterfaceLayer *game = [GameInterfaceLayer node];
[self addChild: game z:1];
...} etc
@end
一旦你这样做,如果你不改变你的Ap pDelegate,你的CCDirector会给你一个错误。 CCDirector基本上决定加载哪个场景。
将其更改为指向您的GameScene。
您可以想象:电影的导演,拍摄场景,充满了许多层。
谢谢,真的让我明白了。有一个问题 - 当你说改变应用程序委托时,就是这么简单,所以GameScene在加载时运行? – Alex 2011-04-01 09:47:06
是的,ccdirector将尝试在helloworld实现中加载场景(默认情况下)。因为您将其移除并放入新创建的gamescene中,您需要将appdelegate指向新位置。你运行了吗? – Ospho 2011-04-16 07:34:01
是的,我做了:)非常感谢。我最终做的是使用主GameScene.m文件来保存所有核心内容,例如hud和游戏逻辑,然后为友方精灵,敌方精灵,菜单屏幕等创建单独的文件。目前为止工作得非常好! – Alex 2011-04-18 08:52:32