Swift SpriteKit为游戏场景添加计时器

Swift SpriteKit为游戏场景添加计时器,swift,timer,sprite-kit,sprite,Swift,Timer,Sprite Kit,Sprite,我看了很多文章,但没有一篇是有意义的,也没有一篇与我的问题相关。我想给用户一个设置的时间来按下一个节点。如果他们在设定时间内成功按下节点,计时器应重置,如果他们未能在设定时间内按下节点,游戏将结束 override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { let touch = touches.first! if square.contains(touch.

我看了很多文章,但没有一篇是有意义的,也没有一篇与我的问题相关。我想给用户一个设置的时间来按下一个节点。如果他们在设定时间内成功按下节点,计时器应重置,如果他们未能在设定时间内按下节点,游戏将结束

 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()
        }
}
override func touchsbegind(touch:Set,带有事件:UIEvent?){
让我们先接触!
如果方形包含(触摸位置(in:self)){
moveSquare()
游戏场景。分数+=1
scoreLabel.text=“\(游戏场景.score)”
}
}否则{
配子更新世()
}
}

因此,我的问题是如何设置计时器以实现这些要求,以及将代码放在何处?

使用SKActions而不是计时器:

let countdown = SKAction.sequence([SKAction.wait(forDuration: 5),
                                   SKAction.perform(#selector(gameOver), onTarget: Self)])
run(countdown, withKey: "gameOverTimer")
(这假设如果没有及时按下正确的按钮,则要调用函数
gameOver

触摸开始
中,如果触摸了正确的节点:

removeAction(forKey: "gameOverTimer")

我认为这是正确的,但我是凭记忆写的。我将尝试测试它并更正任何错误。@选择器不再使用,它现在是#选择器