Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios SKAction序列实际上是否等待操作结束?_Ios_Objective C_Sprite Kit_Skaction - Fatal编程技术网

Ios SKAction序列实际上是否等待操作结束?

Ios SKAction序列实际上是否等待操作结束?,ios,objective-c,sprite-kit,skaction,Ios,Objective C,Sprite Kit,Skaction,我有以下代码: -(void)aggravatedSeek:(SKSpriteNode *)target{ _isAggravated = YES; SKAction *action = [SKAction runBlock:^{ double randTime = 0.2; NSLog(@"%f", randTime); [self moveToSpriteNode:target withTimeInterval:randTim

我有以下代码:

-(void)aggravatedSeek:(SKSpriteNode *)target{
    _isAggravated = YES;

    SKAction *action = [SKAction runBlock:^{
        double randTime = 0.2;
        NSLog(@"%f", randTime);
        [self moveToSpriteNode:target withTimeInterval:randTime];
    }];

    //SKAction *repeatAction = [SKAction repeatAction:action count:6];
    SKAction *rep = [SKAction sequence:@[action, action, action, action, action]]; //Test Sequence

   [self runAction:rep completion:^{
       [self runAction:blackColorAction];
       _isAggravated = NO;

    }];
}

我希望我的操作实际等待,直到上一个操作完成。也就是说,我的动作需要排序,以便
rep
动作不会重复
动作
动作,直到对象完成移动。目前,输出似乎立即运行所有操作,并且没有按应有顺序排列它们。我已经阅读了文档,现在我看到的是他们说要做的…

运行块:操作是一种一次触发类型的操作。它将只运行一次块,然后动作立即“结束”

你想要的是一些动作不是设计用来处理的东西。它们运行一次,或在给定的时间段(持续时间)内运行。然而,它们不会运行,直到满足某些任意条件——这些条件可能立即成立,可能最终成立,也可能永远不会成立。这种方法使所有可变定时功能失效(即线性与时间的轻松缩放)

您可以做的是将“moveToSpriteNode”移动作为一个动作发出,并在更新方法中单独检查精灵是否已到达节点。如果是这样,您将运行下一个移动动作(不使用序列)

更容易的是,您可以简单地依靠移动动作结束,这意味着精灵已经到达目标节点。然后,这将触发序列中的下一个移动操作。如果要在每个目标上运行完成块,只需在完成块内安排下一个移动操作