代码之家  ›  专栏  ›  技术社区  ›  Guru

CCCallBlockN在Cocos2d v3.0中的替代方案

  •  0
  • Guru  · 技术社区  · 11 年前

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

    这是我的Cocos2d 2.0代码:

        id calBlock = [CCCallBlockN actionWithBlock:^(CCNode *node){
            node.position         = orign;
        }];
    
    1 回复  |  直到 11 年前
        1
  •  2
  •   CodeSmile Paul Beusterien    11 年前

    这个 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 以便在块内使用它。

    您通常会有所需的节点引用,因为毕竟在创建操作之后,您将在所需节点上运行操作。只有在您先创建操作,然后再运行它们的情况下,传入的节点才会有用,但我想这是一种罕见的情况,而且可能不是很好的样式。