SpriteBuilder项目中的神奇功能

时间:2014-07-25 11:58:08

标签: cocos2d-iphone spritebuilder

在cocos2d教程中,人们在init方法中初始化sprite / physical节点,但在cocos2d + SpriteBuilder教程中,用这种方法编写了它:

- (void)didLoadFromCCB {}

在cocos2d中,只有教程有类似的方法,但是有一行代码,它说的是什么样的方法,对吧? :

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

所以,' didLoadFromCCB' SpriteBuilder项目是一种神奇的方法吗?

1 个答案:

答案 0 :(得分:0)

在CCBReader加载节点后,didLoadFromCCB方法被发送到每个节点。当它由该节点的类实现时,它运行该方法。它的行为类似于协议方法,无需实现协议(也没有协议)。另请参阅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能够在开始输入时建议该方法。