У меня есть узел в SKScene, который я перемещаю в соответствии с прикосновением пользователей. В принципе, этот персонаж должен также пытаться следить за пальцем пользователя (предполагая, что палец на экране). Я в настоящее время она реализована в виде так, что работает отлично:Обнаружение длинного касания в наборе спрайтов
override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
let touch = touches.first as! UITouch
player.runAction(SKAction.moveTo(touch.locationInNode(self), duration: 1))
}
override func touchesMoved(touches: Set<NSObject>, withEvent event: UIEvent) {
let touch = touches.first as! UITouch
player.runAction(SKAction.moveTo(touch.locationInNode(self), duration: 1))
}
override func touchesCancelled(touches: Set<NSObject>!, withEvent event: UIEvent!) {
player.removeAllActions()
}
override func touchesEnded(touches: Set<NSObject>, withEvent event: UIEvent) {
player.removeAllActions()
}
Однако, проблема заключается в том, что если пользователь держит его/ее палец по телефону. ПрикосновенияBegan вызывается только один раз, и именно тогда начинается крана, а не когда он удерживается. Я хочу, чтобы персонаж персонажа постоянно пытался достичь пальца.
Я сосредотачиваю камеру на узле, так что единственный раз, когда узел должен касаться пальца, - это если пользователь поместил свой палец в/в узле (на той же позиции, что и узел). Из-за этого, после того, как я запустил SKAction для перемещения узла, сенсорный экран недействителен, так как он находится в старой позиции.
Как мне это сделать?
Это то, что я закончил делать, хотя немного больше работы, чем я хотел, он отлично работает. – Aaron