Я пытался закодировать это уже несколько дней, но безуспешно. Моя игра - 2D бесконечный раннер. Мой герой привязан к определенной c точке на оси X. Препятствиями являются случайные (высотные и дистанционные) здания. Я бы хотел добавить в игру преследующего врага. В настоящее время только для визуальных эффектов.
chasingCopNode = CopSprite.newInstance(position: CGPoint(x: -90, y: 0))
let follow = SKAction.moveTo(x: thiefNode.position.x - 50, duration: 5)
let wait = SKAction.wait(forDuration: 2)
let fallBehind = SKAction.moveTo(x: -90, duration: 4)
let chasingSequence = SKAction.sequence([follow, wait, fallBehind])
chasingCopNode.run(chasingSequence)
chasing = true
self.addChild(chasingCopNode)
Я создал это для перемещения чеканного спрайта вдоль оси X. В своей функции обновления я просто обновляю позицию Y противника позицией героя Y.
Это работает, но не совсем то, что мне нужно. Поскольку позиции Y одинаковы, вражеский спрайт иногда летает (потому что под ним нет здания).
Я не мог придумать какие-либо рабочие идеи для перемещения по оси Y. Я подумал, может быть, добавить функцию, которая вычисляет необходимый импульс Y для врага, чтобы приземлиться в следующем здании, но я не смог сделать это правильно.
спасибо за вашу помощь!