Я пытаюсь создать меню паузы на игровом слое. Я делаю это, просто добавляя две кнопки сверху при нажатии кнопки паузы, чтобы игрок все еще мог видеть стадию игры
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
for touch in touches {
let location = touch.location(in: self)
if atPoint(location).name == "pause" {
let button: SKSpriteNode?
let button2: SKSpriteNode?
button = SKSpriteNode(imageNamed: "button_continue")
button?.name = "button_continue"
button?.size.height = 55
button?.size.width = 215
button?.physicsBody = SKPhysicsBody(rectangleOf: button!.size)
button?.physicsBody?.allowsRotation = false
button?.position = CGPoint(x: 0, y: 160)
button?.zPosition = 100
self.addChild(button!)
button2 = SKSpriteNode(imageNamed: "button_finish")
button2?.name = "button_finish"
button2?.size.height = 55
button2?.size.width = 215
button2?.physicsBody = SKPhysicsBody(rectangleOf: button2!.size)
button2?.physicsBody?.allowsRotation = false
button2?.position = CGPoint(x: 0, y: -50)
button2?.zPosition = 100
self.addChild(button2!)
// The two buttons are created but here I am trying to stop everything until the continue button is pressed and I don't find a way
}
}
}
Я пробовал sleep () или timer.invalidate (), но ни один из них не работает с операторами if, и я не могу использовать циклы while, потому что тогда кнопки не появляются, пока цикл while не завершится:
while atPoint(location).name != "button_cotinue" {
timer1.invalidate()
}
Это то, что я пытался и не работает.
Затем, когда нажата кнопка продолжения, я также удалю кнопки, но могу правильно их кодировать. Также кнопка «Готово» отправляет игрока в главное меню.