Swift + SpriteKit - 检测长按结束

时间:2016-04-04 20:05:38

标签: swift sprite-kit uigesturerecognizer

我试图弄清楚如何检测用户何时停止按住按钮。我试图让背景连续滚动并为角色设置动画以模拟步行效果。

要移动背景,我在 GameScene.Swift 中有这个:

 override func update(currentTime: NSTimeInterval) {

        background.position = CGPoint(x: background.position.x - 5, y: background.position.y)
        backgroundRepeated.position = CGPoint(x: backgroundRepeated.position.x - 5, y: backgroundRepeated.position.y)

        if (background.position.x < -background.size.width) {
            background.position = CGPointMake(backgroundRepeated.position.x + backgroundRepeated.size.width, background.position.y)
        }

        if (backgroundRepeated.position.x < -backgroundRepeated.size.width) {
            backgroundRepeated.position = CGPointMake(background.position.x + background.size.width, backgroundRepeated.position.y)
        }

}

适用于移动背景。然后我遇到了以某种方式获取 GameViewController.Swift 上的元素来做事的问题。

所以,我通过在GameViewController上进行IBAction解决了这个问题,当用户持有长按时,它会创建一个NSUserDefaults条目:

gameActions.setObject(true, forKey: "Walking")

然后我将上面的代码包装在if:

let startWalking = gameActions.boolForKey("Walking")
if (startWalking == true) {
    //stuff to animate
}

我的问题

1)如何检测用户何时停止按住按钮。我见过 UIGestureRecognizer.Ended ,但我看不清楚如何实现它。

0 个答案:

没有答案