如何检查具有密钥的特定SKAction是否正在运行

boe*_*ron 3 sprite-kit skaction swift3

我有一个SKAction触发运行withKey:"running".我还有其他关键操作.在我的情况下,我会发现它很方便,如果我可以检查例如是否正在运行"正在运行"键的SKAction.

就像是:

if (mySpriteNode.runsAction("running")) {
    // do some magic code
}
Run Code Online (Sandbox Code Playgroud)

现在我发现我可以查看是否有一般应用于某个节点的操作,例如

mySpriteNode.hasActions
Run Code Online (Sandbox Code Playgroud)

有人有想法吗?

Swe*_*per 7

我发现了这种方法.它可能是你需要的:

func action(forKey key: String) -> SKAction?
Run Code Online (Sandbox Code Playgroud)

如果存在与键匹配的操作,则返回操作对象.否则,返回nil.

您可以像这样使用它:

if let _ = mySpriteNode.action(forKey: "someKey") {
    // action is running
} else {
    // action is not running
}
Run Code Online (Sandbox Code Playgroud)