Я создаю игру OS X Swift SpriteKit, но я все еще довольно новичок в программировании. Я пытаюсь запустить функцию keyDown только один раз, пока ключ удерживается. В настоящее время, если ключ удерживается, он быстро повторяет код. Я пытаюсь сделать так, чтобы один раз играть в анимацию для моего игрового персонажа (так что он будет повторяться навсегда, пока ключ больше не будет нажат), потому что в функции keyUp он вернется к воспроизведению простоя анимации. Вместо того, чтобы воспроизводить запущенную анимацию, она просто зависает на первой текстуре, потому что код повторяется слишком быстро, не оставляя время для полной анимации. Можно ли запускать действие только один раз?Запустить функцию KeyDown только один раз
override func keyDown(theEvent: NSEvent) {
if theEvent.keyCode == 124 {
//Move right
runningRight = true
runRightOrLeft(player)
player.runAction(SKAction.repeatActionForever(SKAction.animateWithTextures(RunTextures, timePerFrame: 0.1)))
}
}
override func keyUp(theEvent: NSEvent) {
//Go back to idle animation
player.runAction(SKAction.repeatActionForever(SKAction.animateWithTextures(IdleTextures, timePerFrame: 0.1)))
}