在cocos2d教程中,人们在init方法中初始化sprite / physical节点,但在cocos2d + SpriteBuilder教程中,用这种方法编写了它:
- (void)didLoadFromCCB {}
在cocos2d中,只有教程有类似的方法,但是有一行代码,它说的是什么样的方法,对吧? :
- (void)onEnter{
[super onEnter];
}
所以,' didLoadFromCCB' SpriteBuilder项目是一种神奇的方法吗?
答案 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能够在开始输入时建议该方法。