Анимация объекта в границах по направлению - PullRequest
0 голосов
/ 12 января 2012

Так что просто ради удовольствия я решил сыграть в игру "защита башни". У меня есть все основные понятия вниз. Есть только один аспект, который я до сих пор не выяснил.

Как лучше всего анимировать объекты вдоль пути?

Я не хочу, чтобы путь был слишком жестким, я бы хотел, чтобы здесь было небольшое отклонение.

Я думаю почти как "река", что объекты плавают вниз, где есть берега, которые объекты не могут пройти, и поток, который определяет направление. Если объект попадает в банк, он должен просто отскочить от края к центру «реки» и всегда направляться «вниз по течению»

Я бы хотел, чтобы ответы оставались в стороне от рамок настолько, насколько это разумно. И я не думаю, что язык должен иметь большое значение (не стесняйтесь размещать код / ​​псевдо-код, если он лучше иллюстрирует процесс!).

EDIT: Теперь, когда я думаю об этом, будет ли разумным подход к поиску пути A * (или другой, если A * не имеет смысла, это только один из известных мне способов)? Конечно, существует концепция «выхода», куда объекты пытаются попасть, поэтому я полагаю, что у меня могло бы быть правило, которое гласит: «Эти пиксели непроходимы, какой самый короткий путь к выходу». И добавьте очень небольшое количество отклонений в маршрут, если это необходимо.

Мысли

1 Ответ

1 голос
/ 29 марта 2012

Вот как я бы подошел к этой проблеме:

Pathfinding

На этом изображении коричневый путь представляет собой путь, по которому идут ваши злодеи, желтые квадраты - это путевые точки,и красные края являются границами пути.Вот как в основном может развиваться их состояние:

Have I hit a waypoint?
  Yes, adjust my forward axis
    Choose the next waypoint
    My forward direction is toward that waypoint
Am I touching a red boundary?
  No, I can wander left or right
  Yes, it's on my right
    I should wander left
  Yes, it's on my left
    I should wander right
Add lateral movement based on the wander direction I've chosen

Здесь можно настроить несколько переменных:

  • Злодеи должны фиксировать одно направление в течение заданного промежутка времени.если они не достигают путевой точки, чтобы не дрожать
  • Когда они сталкиваются с границей пути, они должны отойти от нее на определенное количество, чтобы они не отскакивали от нее
  • Baddiesдолжен ударить центр путевых точек, прежде чем перейти к следующему.В противном случае они могут попасть в острые углы.

Если ваши уровни предварительно сгенерированы (что, как я полагаю, имеет место в большинстве игр TD), то вы можете установить путевые точки при создании карт.Если вы генерируете их процедурно, просто разместите путевые точки там, где вы хотите, чтобы вниз по течению от вашей реки произошли изменения более чем на +/- пять градусов.A * немного излишне для такой ограниченной области.Если вы хотите добавить немного больше изменчивости, вы можете рассмотреть пути ветвления, в которых злоумышленники выбирают свою следующую путевую точку из случайного выбора, вы можете установить T-переход, где злодеи посещают A, затем B, затем C, затем B,затем D. Прототип должен быть довольно простым, и правильное ощущение придет с некоторыми изменениями в том, сколько боковых движений вы допускаете или поощряете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...