我已经浏览了很多文章,但它们似乎都没有意义或与我的问题相关。我想给用户一个设定时间来按节点。如果他们在设定的时间内成功按下节点,则计时器应该重置,如果他们未能在设定的时间内按下节点,则游戏结束。
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()
}
}
所以我的问题是如何设置计时器以达到这些要求,我在哪里放置代码?
答案 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")