检查SKAction是否正在运行

Dav*_*d P 4 iphone objective-c ios sprite-kit skaction

如何检查a SKAction是否已完成动画?

我需要检查我的操作是否已完成或仍在执行其操作.之后,我想创建一个布尔值,以避免在主要操作期间的多个操作.

SKAction *lionJumpActionComplete = [lionNode actionForKey:@"lionIsJumping"];
    lionJumpActionComplete = [SKAction sequence: @[lionJumpActionUp, lionJumpActionFly, lionJumpActionDown, lionJumpActionPause]];

    if (lionJumpActionComplete) {
        return;
    }

    [lionNode runAction:lionJumpActionComplete withKey:@"lionIsJumping"];
Run Code Online (Sandbox Code Playgroud)

Bat*_*lia 9

如果这是您节点上运行的唯一操作,则可以使用以下命令检查:

if (!lionNode.hasActions) { // check if no actions are running on this node
   // action code here
}
Run Code Online (Sandbox Code Playgroud)

或者,您可以在完成块中设置布尔值,该块在操作运行并完成后调用:

[lionNode runAction:[SKAction sequence: @[lionJumpActionUp, lionJumpActionFly, lionJumpActionDown, lionJumpActionPause]] completion:^{
    BOOL isActionCompleted = YES;
}];
Run Code Online (Sandbox Code Playgroud)