2017-04-20 72 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 
} 
相關問題