I have a sprite that scales to 1 or -1 when moving right or left, if I move fast the finger it works fine, if I drag it slowly it doesn't stay in the left position and keeps flipping left and right. How can I solve it? This is how I handle the character movement:
override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
let touch = touches.first
if let location = touch?.location(in: self){
player.run(SKAction.move(to: CGPoint(x: playerPosition.x + location.x - startTouch.x, y: self.frame.height/2.5), duration: 0.1))
}
let touchLoc = touch!.location(in: self)
let prevTouchLoc = touch!.previousLocation(in: self)
let deltaX = touchLoc.x - prevTouchLoc.x
player.position.x += deltaX
player.xScale = deltaX < 0 ? 1 : -1
}