Я пытаюсь сделать СКАК, чтобы мой игрок медленно тянулся к врагу, который собирается его убить. Проблема, на самом деле, заключается в том, что игрок и враг находятся в разных узлах, следуя этой иерархии:
Сцена (SKScene) -PARENT-> Игрок (SKNode)
Сцена (SKScene) -PARENT-> EnemiesNode (SKNode) -PARENT-> Враг (SKNode)
Итак, я пытаюсь преобразовать позицию противника в систему координат сцены, а затем преобразовать эту позицию в систему координат игрока.
let enemyToScene = enemy.node?.convert(other.enemy!.position, to: self)
let sceneToPlayer = self.convert(enemyToScene!, to: self.player.position)
self.player.position.run(SKAction.move(to: enemyToPlayer!, duration: 2.0))
Когда этот код выполняется, происходит то, что мой игрок переходит в совершенно другую позицию, но я заметил, что он всегда переходит в одну и ту же позицию, поэтому я думаю, что преобразование работает, но не так, как ожидается.
Это позиции перед конвертацией:
Положение противника: необязательно ((- 1440,0, -96,0))
Позиция игрока: (347.970458984375, 339.2470703125)
И позиция противника после конверсии:
EnemyToScene: необязательно ((- 2880,0, -192,0))
SceneToPlayer: (-2038.263427734375, -27.4952392578125)
Если кто-нибудь сможет мне помочь, я буду очень рад.