2016-08-17 64 views
0

在SpriteKit中,當我重複對精靈的moveTo操作時,當按鍵被按下超過一秒鐘左右時,它開始加速。下面是代碼:Keep Sprite加速

override func keyDown(theEvent: NSEvent) { 
    let key = theEvent.keyCode 
    print(key) 
    let mario = self.childNodeWithName("mario") 
    if key == 0 { 
     mario?.runAction(SKAction.repeatActionForever(SKAction.moveBy(CGVectorMake(-1, 0), duration: 0.01))) 
    } 
} 

回答

1

如果你看的文檔,你會看到有一個hasActions方法,告訴您該SKNode是否正在執行的操作。您可以使用此方法來防止節點在移動時執行另一個移動操作:

if let marioNode = mario { 
    if key == 0 && !marioMode.hasActions() { 
     marioNode.runAction(SKAction.repeatActionForever(SKAction.moveBy(CGVectorMake(-1, 0), duration: 0.01))) 
    } 
} 
+0

我知道'hasActions',我只是沒有以我認爲正確的方式實現它。謝謝 –

+0

如果你認爲我的回答可以回答你的問題,請考慮接受它。 @AbhiV – Sweeper

+0

剛試過一次,以確保它是正確的,它的工作原理 –