2017-04-20 70 views
3

我有一个触发的SKAction,运行时使用Key:“running”。 我也有其他键操作。在我的情况下,我会发现它很方便,如果我可以检查,例如SKAction键“运行”正在运行或没有。如何检查一个具有密钥的特定SKAction是否正在运行

喜欢的东西:

if (mySpriteNode.runsAction("running")) { 
    // do some magic code 
} 

现在我才发现,我可以看看是否有应用到一个节点,一般的操作,如

mySpriteNode.hasActions 

是否有人有想法?

+0

当一个动作被分配到一个节点,它正在运行,有没有办法暂停它(尽管你可以暂停节点) – Knight0fDragon

+1

@ Knight0fDragon你可以使用action(forKey :)方法暂停与某个键相关的动作,而不暂停节点(action.speed = 0)... – Whirlwind

+0

啊,是的,混淆了它与播放音频动作,很好有一个提醒 – Knight0fDragon

回答

5

我找到了这个方法。这可能是你所需要的:

func action(forKey key: String) -> SKAction? 

如果操作存在的密钥相匹配,则返回操作对象。否则,返回nil。

您可以使用它像这样:

if let _ = mySpriteNode.action(forKey: "someKey") { 
    // action is running 
} else { 
    // action is not running 
} 
相关问题