CCCallBlockN在Cocos2d v3.0中的替代品

时间:2014-02-26 10:35:37

标签: cocos2d-iphone

Cocos2d 3.0的CCCallBlockN替代方案是什么?

这是我的Cocos2d 2.0代码:

    id calBlock = [CCCallBlockN actionWithBlock:^(CCNode *node){
        node.position         = orign;
    }];

1 个答案:

答案 0 :(得分:2)

CCCallBlockNCCCallBlockND变体一直是多余的,因为块可以引用本地范围内的对象:

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的引用,以便在块内使用它。

您通常会拥有所需的节点引用,因为毕竟您将在创建操作后在所需节点上运行该操作。只有在您首先创建操作并稍后运行它们的情况下,传入的节点才会有用,但我想这是一种罕见的情况,无论如何都可能不是很好的风格。