在SpriteKit中,当我在精灵上重复moveTo
动作时,当按下按键超过一秒左右时,它会开始加速。这是代码:
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)))
}
}
答案 0 :(得分:1)
如果您查看了文档,您会看到有hasActions
方法告诉您SKNode
是否正在执行操作。您可以使用此方法来阻止节点在移动时运行另一个移动操作:
if let marioNode = mario {
if key == 0 && !marioMode.hasActions() {
marioNode.runAction(SKAction.repeatActionForever(SKAction.moveBy(CGVectorMake(-1, 0), duration: 0.01)))
}
}