什么是
Cocos2d 3.0 的 CCCallBlockN 替代品?
这是我的 Cocos2d 2.0 代码:
id calBlock = [CCCallBlockN actionWithBlock:^(CCNode *node){
node.position = orign;
}];
CCCallBlockN
和 CCCallBlockND
变体一直是多余的,因为块可以引用本地范围内的对象:
id someData = (some data however created or obtained);
CCNode* someNode = (some node however created or obtained);
id callBlock = [CCActionCallBlock actionWithBlock:^{
someNode.position = origin;
[someData quickDoSomething];
}];
[someNode runAction:callBlock];
您只需要在块的外部范围内有一个像someNode
这样的引用,就可以在块内使用它。
您通常会拥有所需的节点引用,因为毕竟您将在创建操作后在所需的节点上运行操作。只有在您先创建操作然后运行它们的情况下,传入的节点才有用,但我想这是一种罕见的情况,无论如何可能都不是好的风格。