Я пытаюсь панорамировать SKSpriteNode с помощью UIPanGesture, проблема в том, что движение слишком быстрое (расстояние намного больше, чем движение пальца, ниже приведен код. Я подозреваю, что что-то не так с моим добавлением текущей позициии перевод. Ваша помощь очень ценится.
@objc func panGestureHandler(_ recognizer: UIPanGestureRecognizer) {
if recognizer.state == .began {
print("Touchdown")
var touchLocation = recognizer.location(in: recognizer.view)
touchLocation = self.convertPoint(fromView: touchLocation)
if (self.atPoint(touchLocation) is SKSpriteNode){
selectedNode = self.atPoint(touchLocation) as! SKSpriteNode
} else {
recognizer.state = .failed
}
} else if recognizer.state == .changed {
var translation = recognizer.translation(in: recognizer.view!)
translation = CGPoint(x: translation.x, y: -translation.y)
let position = selectedNode.position
selectedNode.position = CGPoint(x: position.x + translation.x, y: position.y + translation.y)
recognizer.setTranslation(CGPoint.zero, in: recognizer.view)
} else if recognizer.state == .ended {
recognizer.setTranslation(CGPoint.zero, in: recognizer.view)
}
}