0

我使用此代码作为基础来创建一个容器,该容器由许多精灵组成,因此我可以将它们作为一个实体移动。一切正常,除非我在容器过程完成之前开始平移。如果我这样做,顶部的容器节点将拖动其他精灵。我希望所有精灵都连接起来并像连接一样移动。

如果我等到整个过程完成,就没有问题意味着平底锅正在移动整个容器节点。

我想知道是否有人可以指导我如何停止与应该包含在容器中的选定精灵的交互,直到该过程完成?

我试过'_background.userInteractionEnabled = NO;' 以及添加到节点本身但没有成功。我一直在尝试使用具有相同结果的 runBlock。

我需要得到 1.) 应禁止与 _selectedNodeArray 中的节点的所有交互 2.) 运行所有代码并创建容器 3.) 启用与容器/节点的交互。

这是代码:

if ([_selectedNodeArray count] > 2) {

        //////CLEAN THE ARRAY//////
        _selectedNodeArray = [[NSArray alloc]initWithArray:[self cleanSelectedNodeArray:_selectedNodeArray]];
        NSLog(@"currentNode:%@ position:%@", _currentNode.name, NSStringFromCGPoint(_currentNode.position));


        SKNode *theSelectedNode = [_background childNodeWithName:_currentNode.name];

        SKAction *pulseCard = [SKAction sequence:@[
                                                  [SKAction playSoundFileNamed:@"beep-7.wav" waitForCompletion:YES],
                                                  [SKAction colorizeWithColor:[SKColor yellowColor] colorBlendFactor:1.0 duration:0.15],
                                                  [SKAction waitForDuration:0.1],
                                                  [SKAction colorizeWithColorBlendFactor:1.0 duration:0.15],
                                                  [SKAction waitForDuration:0.1]
                                                  ]];

        SKAction *sequence = [SKAction sequence:@[
                                                  [SKAction repeatAction:pulseCard count:3],
                                                  [SKAction performSelector:@selector(kickStartContainerMode) onTarget:self]]];


        [theSelectedNode runAction: sequence];
        _isThisPressedAlready = YES;
     }
4

1 回答 1

0

问题原来是这一行:

[SKAction repeatAction:pulseCard count:3],

如果精灵的移动发生在“count:3”完成之前,那么容器似乎没有 100% 打包。

它并没有解决真正的问题,而是我在这段代码中遇到的问题。

于 2014-01-07T20:22:59.840 回答