【问题标题】:Error in publishing CocosBuilder scene in cocos2d 3.0cocos2d 3.0 发布 CocosBuilder 场景出错
【发布时间】:2014-08-01 09:34:49
【问题描述】:

我是 Xcode、Cocos2d 的新手,我正在 CocosBuilder 中迈出第一步。我正在学习可用的在线教程,包括RayWenderlich Game Development tutorials。在我复制代码时,有时我注意到作者遗漏了一些要点,这对于新开发人员来说并不明显。在教程 CocosBuilder 简介 中,我无法将场景 (*.ccbi) 放入 Xcode 我有 cocos2d 3.1.0。我的代码:

+(CCScene *) scene
{
    CCNode * menu = [CCBReader nodeGraphFromFile:@"MainMenuScene.ccbi"];
    CCScene * scene = [CCScene node];
    [scene addChild:menu];
    return scene;
}

即使我做了#import "CCBReader.h",Xcode 也无法识别 nodeGraphFromFile,并且还尝试了另一种方法 sceneWithNodeGraphFromFile 也无法识别。

CCScene *s= [CCBReader sceneWithNodeGraphFromFile:@"MainMenuScene.ccbi"];

任何人都可以帮助展示从 CocosBuilder 到 cocos2d 3.1.0 版本的发布场景的完整代码,我将不胜感激。

很遗憾,我无法上传我的屏幕截图。

【问题讨论】:

  • 请提供实际教程的链接。

标签: objective-c xcode cocos2d-iphone cocosbuilder


【解决方案1】:

CocosBuilder 项目已弃用,这意味着它是no longer in development(最后更新于 2013 年 5 月)。你仍然可以使用 CB 创建带有 cocos2d-iphone v2.x 的应用程序,但它不适用于 cocos2d-iphone v3。

简而言之:您不能将 CocosBuilder 与 cocos2d-iphone v3 一起使用。尝试让它工作总是会有很多问题,如果不分别修改 cocos2d 引擎本身就不可能实现,CB 中的设计将与您在运行应用程序时得到的不匹配。

不过,您确实有其他选择:

  • 对于 cocos2d-iphone v3 使用 SpriteBuilder,CocosBuilder 的继承者。你会很容易找到tutorials for SB,几个月后我的Learn SpriteBuilder书也将上市。 SpriteBuilder 本身在Mac App Store 上可用。

  • Cocos2d-x 用户应该使用Cocos Studio。 SpriteBuilder 不支持 cocos2d-x。

SpriteBuilder 选项也不需要您手动添加 CCBReader 文件,因为它们是 cocos2d v3 的一部分,因此如果您尝试将 CocosBuilder CCBReader 文件添加到 v3 项目中,可能会出现各种冲突/错误。 SpriteBuilder 版本与 cocos2d-iphone 版本同步,因此不会出现版本不匹配问题,另外 SB 可以将现有项目更新到最新的 cocos2d-iphone 版本。

但请注意,SpriteBuilder 无法导入之前使用 CocosBuilder 创建的项目或 CCB 文件。

【讨论】:

  • 非常感谢您的澄清,我知道我看到了全貌!希望教程的作者在教程里面做这样的cmets和warning,这样新手就不会因为各个版本的命令不匹配而碰壁了。
【解决方案2】:

作为一个清单,

确保您已将 CCBReader.h 添加到您的项目中。 它可以在这里找到。 https://github.com/cocos2d/CCBReader

那么,

所有的 ccbi 文件和其他资源也应该添加到项目中。

完成后,上面的代码应该可以工作了。

如下开始场景

[[CCDirector sharedDirector] runWithScene:newScene];

【讨论】:

  • 列表中的这些项目都不能解决 Xcode 无法识别方法的问题。第一个将导致编译器在#import "CCBReader.h" 中出错,另一个将导致运行时错误,而不是编译时错误。
  • 同意,但我的假设是代码已被复制粘贴。所以这个人一定没有注意到“导入”附近的编译器错误,只是报告了这个代码附近的错误。
  • 是的,CCBReader.h 已包含并导入到运行类 *.m 中,ccbi 文件也已添加到项目中。我在学习 cocos2d 时遇到的一个令人分心的时刻是,通过更改版本,他们也更改了命令的名称,例如在课程中写成“Director”(版本 2.x),而在 cocos2d 3.x 版本中它就像“CC导演”
  • 是的,没有注意到您使用的是 v3。您可能需要降级到 cocos2d.2.x 或改用 sprite builder。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多