Метод вражеского нереста в шутере сверху вниз

20

Я работаю над шутером сверху вниз, похожим на DoDonPachi , Ikaruga и т. Д. Движение камеры по миру обрабатывается автоматически, когда игрок может перемещаться внутри видимой области камеры.

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

  1. Положение камеры: «срабатывание», когда камера проходит мимо точек
  2. Время по пути: «30 секунд, появляются 2 врага»

В обоих случаях будут определены относительные положения камеры и поведение противника.

То, как я это вижу, то, как вы определяете эти точки, напрямую влияет на то, как будет работать «редактор уровней», или что у вас есть.

Будут ли какие-то преимущества одного подхода перед другим?

Крис Уотерс
источник

Ответы:

7

Я бы предложил разместить позиции спавна на фоновой карте как узлы, которые видны из какого-то редактора карт. Вы можете представить shmup spawn с двумя переменными:

  1. Положение, из которого они впервые видны, что лучше всего представить как точку
  2. Расстояние от нижнего экрана, когда вы должны их породить.

Затем вы можете визуализировать расстояние от нижней части экрана в виде вертикальной линии, направленной вниз от узла возрождения (которое может быть визуализировано как затененная версия врага или что-то подобное). Когда нижняя часть экрана коснется этой линии, она появится. Это позволяет вам полностью редактировать врагов в каком-то визуальном редакторе и дает обзор всего процесса игры.

Бен Зейглер
источник
По поводу 2) Конечно, при экспорте вы должны будете перевернуть этот код (т. Е. Для каждой строки, какие точки появления должны стать активными, так как в этой системе вам нужно знать о некоторых точках появления, прежде чем они станут видимыми. это действительно самый логичный путь
Кадж
1
Как примечание, убедитесь, что вы используете редактор, который позволяет вам легко перемещать узлы навалом. При настройке уровня shmup вы будете вставлять и удалять врагов, постоянно настраивать время в середине вашего уровня, а необходимость сдвигать все свои сущности по одному убьет вас.
ZorbaTHut
Мне нравится эта идея, потому что она действительно облегчит редактирование, что всегда является плюсом
Крис Уотерс
7

Тем не менее, позиция камеры для появления может быть более гибкой, поскольку вы можете изменить траекторию, не беспокоясь о большом эффекте домино.

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

Другая проблема, которую я вижу, это настройка скорости камеры. Вы действительно хотите пойти и отрегулировать вражеские появления только потому, что вы заставили камеру двигаться немного быстрее или медленнее? Кроме того, вам нужно будет пройти через уровень ужасное количество раз, чтобы найти время появления или настройки для них.

Дэвид Янг
источник
2

Я настоятельно рекомендую вообще не перемещать «камеру»; учитывайте игрока и врагов в одном и том же фиксированном координатном пространстве. Враги и фоновая прокрутка должны быть согласованы с независимой временной шкалой. Это облегчает всю математику.


источник
Я наполовину согласен с тобой. Определенно физика шмупа - фальшивка и основана на том, что корабль фактически не движется вперед Тем не менее, вопрос остается в силе, так как у вас есть камера и т. Д., Чтобы рассмотреть
Иан
Действительно, это не лишает законной силы вопрос. Это все еще время против (виртуального) пройденного расстояния. Перемещаете ли вы игрока вперед или фон назад - это просто концептуальный слой. Кроме того, их разделение для упрощения математики может усложнить другие вещи, например, поместить врагов на задний план (турели), заставить их избегать фоновых объектов или столкнуться с фоном.
Кай
1

Я бы пошел на позицию камеры. Использование времени усложнит задачу, если вы хотите, чтобы вражеский путь соответствовал некоторой графике в вашем файле карты (например, враги следуют по изогнутому пути). Также это позволяет ускорить прокрутку без изменения точек появления.
Обратной стороной является то, что ускорение прокрутки заставит врагов приходить быстрее. Что можно считать плюсом (ускорение будет затруднено) или минусом (скорость прокрутки влияет на темп).

Кая
источник
1

Я также работаю над космическим шутером. Я использовал пустой игровой объект под названием GameController. добавил компонент скрипта с именем GameController.cs, который контролирует порождаемую часть, как,

  • Сохранить список точек появления [массив]
  • Дайте каждому врагу определенный вес и очки. вес, контролирующий скорость нереста противника, если у противника большой вес, есть хорошая возможность выбирать на каждом уровне.
  • Затем каждый раз проверяйте текущий уровень и выбирайте случайное число, если число меньше веса, порождают, которые ассоциируют врага. Я надеюсь, что это помогло.

http://www.youtube.com/watch?v=VqFJsU63GRo

jquery404
источник
0

Я поместил бы их на большой фон карты и включил их начальный путь движения на эту карту. Таким образом, я мог бы впоследствии значительно изменить путь камеры, вместо того, чтобы менять путь и время отдельно.

wolfdawn
источник