Swift SpriteKit为GameScene添加计时器

时间:2017-05-17 03:02:25

标签: swift timer sprite-kit sprite

我已经浏览了很多文章,但它们似乎都没有意义或与我的问题相关。我想给用户一个设定时间来按节点。如果他们在设定的时间内成功按下节点,则计时器应该重置,如果他们未能在设定的时间内按下节点,则游戏结束。

 override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        let touch = touches.first!
        if square.contains(touch.location(in: self)) {
            moveSquare()
            GameScene.score+=1
            scoreLabel.text = "\(GameScene.score)"
            }
        } else {
            gameOverScene()
        }
}

所以我的问题是如何设置计时器以达到这些要求,我在哪里放置代码?

1 个答案:

答案 0 :(得分:2)

使用SKActions代替计时器:

let countdown = SKAction.sequence([SKAction.wait(forDuration: 5),
                                   SKAction.perform(#selector(gameOver), onTarget: Self)])
run(countdown, withKey: "gameOverTimer")

(假设如果未及时触及正确的按钮,则函数gameOver是您要调用的函数)

并在touchesBegan中,如果触摸了正确的节点:

removeAction(forKey: "gameOverTimer")