преследование врага в бесконечном бегуне - PullRequest
0 голосов
/ 15 января 2020

Я пытался закодировать это уже несколько дней, но безуспешно. Моя игра - 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 для врага, чтобы приземлиться в следующем здании, но я не смог сделать это правильно.

спасибо за вашу помощь!

...