【发布时间】:2016-10-28 04:15:23
【问题描述】:
我正在创建一个 OS X Swift SpriteKit 游戏,但对编程还是很陌生。我试图在按住键时只运行一次 keyDown 函数。目前,如果一个键被按住,它会快速重复代码。我正在尝试这样做,以便我可以为我的游戏角色播放一次运行动画(因此它将永远重复,直到不再按下该键),因为在 keyUp 功能上它将返回播放空闲动画。它没有播放正在运行的动画,而是冻结在第一个纹理上,因为代码重复得太快,没有留出时间播放完整的动画。是否可以只触发一次动作?
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)))
}
【问题讨论】:
标签: swift macos function swift2