Как обрабатывать долгое нажатие?
Пишу программу в Xcode используя SpriteKit на языке swift, и у меня появилась проблема, я не понял как обрабатывать долгие нажатия, я знаю что в языке уже есть встроенные методы для нажатий (например:
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {})
TouchesBegan обрабатывает одиночные нажатия а у меня в игре я сделал что то на подобии джойстика, и мне надо сделать так: сколько кнопку держишь столько объект и двигается. Я не понимаю как это реализовать и какую функцию для этого использовать, помогите пожалуйста.
Ответы (1 шт):
Нужно в touchesBegan определить, где произошло нажатие и если оно на нужной кнопке, то начать движение. Затем в touchesEnded точно также обработать прекращение нажатия. В touchesCancelled вызвать touchesEnded.
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
guard let touch = touches.first else { return }
let location = touch.location(in: layer) // нужный слой игры
let touchLocation = touch.location(in: self)
if let body = nodes(at: touchLocation).first, body.name == "BUTTON" { ... }
}