ios - 检查 SKAction 是否正在运行

标签 ios iphone objective-c sprite-kit skaction

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

我需要检查我的操作是否已经完成或仍在执行它的操作。之后我想创建一个 bool 值以避免在主要操作期间执行多个操作。

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

    if (lionJumpActionComplete) {
        return;
    }

    [lionNode runAction:lionJumpActionComplete withKey:@"lionIsJumping"];

最佳答案

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

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

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

[lionNode runAction:[SKAction sequence: @[lionJumpActionUp, lionJumpActionFly, lionJumpActionDown, lionJumpActionPause]] completion:^{
    BOOL isActionCompleted = YES;
}];

关于ios - 检查 SKAction 是否正在运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21886865/

相关文章:

iphone - 如何声明具有全局类访问权限的 UInt32 变量

iphone - 将 2 个 UIImage 合并为一个,其中一个被旋转

objective-c - Cocoa 应用程序内部的 Applescript

ios - 从 NSURLSessionDataTask 请求的 NSData 响应中获取 XML

ios - 如何在网站上的 iPhone 上播放 RTMP 流

objective-c - 在创建 Objective C 到 Swift Bridge 时“在类型的对象上找不到属性”

ios - 如何使用 3d touch 从多个小部件中选择一个用于主屏幕?

ios - iOS SDK 与模拟器的区别

ios - 检查 View Controller 是否是最后一个并设置一个标志

ios - 应用程序未显示在 iPad 的“蜂窝数据”下