保持精灵加速

时间:2016-08-17 06:33:35

标签: ios swift sprite-kit

在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)))
    }
}

1 个答案:

答案 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)))
    }
}