Siga um caminho inverso
Estou fazendo um sprite para orbitar um ponto e por isso fiz um caminho que é seguido por esse sprite:
let dx1 = base1!.position.x - self.frame.width/2
let dy1 = base1!.position.y - self.frame.height/2
let rad1 = atan2(dy1, dx1)
path1 = UIBezierPath(arcCenter: circle!.position, radius: (circle?.position.y)! - 191.39840698242188, startAngle: rad1, endAngle: rad1 + CGFloat(M_PI * 4), clockwise: true)
let follow1 = SKAction.followPath(path1.CGPath, asOffset: false, orientToPath: true, speed: 200)
base1?.runAction(SKAction.repeatActionForever(follow1))
Isso funciona e o sprite começa a orbitar em torno desse ponto. O problema é que, quando o usuário toca na tela, quero que o sprite comece a girar no sentido anti-horário. Para isso, escrevo o mesmo código para girar no sentido horário, mas edite a última linha para:
base1?.runAction(SKAction.repeatActionForever(follow1).reversedAction())
Mas o problema é que, embora gire no sentido anti-horário, a imagem do sprite vira na horizontal. O que posso fazer para evitar isso? Ou existe outra maneira de orbitar um sprite através de um ponto?