【问题标题】:Magical function in SpriteBuilder projectsSpriteBuilder项目中的神奇功能
【发布时间】:2014-07-25 20:58:11
【问题描述】:

在 cocos2d 教程中,人们在 init 方法中初始化精灵/物理节点,但在 cocos2d + SpriteBuilder 教程中,它是用这种方法编写的:

- (void)didLoadFromCCB {}

cocos2d只有教程里有这样的方法,但是有一行代码,说的是什么方法,对吧? :

- (void)onEnter{ 
[super onEnter];
}

那么,'didLoadFromCCB' 是 SpriteBuilder 项目的神奇方法吗?

【问题讨论】:

    标签: cocos2d-iphone spritebuilder


    【解决方案1】:

    didLoadFromCCB 方法在节点被 CCBReader 加载后发送到每个节点。当该方法由该节点的类实现时,它会运行该方法。它的行为类似于协议方法,而无需实现协议(也没有协议)。另见this github issue

    加载完成后运行 didLoadFromCCB 的 CCBReader 方法是这样的:

    + (void) callDidLoadFromCCBForNodeGraph:(CCNode*)nodeGraph
    {
        for (CCNode* child in nodeGraph.children)
        {
            [CCBReader callDidLoadFromCCBForNodeGraph:child];
        }
    
        if ([nodeGraph respondsToSelector:@selector(didLoadFromCCB)])
        {
            [nodeGraph performSelector:@selector(didLoadFromCCB)];
        }
    }
    

    onEnter 方法由 CCNode 类定义,因此它记录在 CCNode 类参考中,Xcode 能够在开始键入时建议该方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-06
      相关资源
      最近更新 更多