Спосіб нересту в стрільці зверху вниз


20

Я працюю над шутером зверху вниз, схожим на DoDonPachi , Ikaruga тощо. Рух камери по всьому світу обробляється автоматично за допомогою гравця, здатного переміщатися всередину видимої області камери.

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

  1. Положення камери: нерестовий "тригер", коли камера проходить через точки
  2. Час вздовж шляху: "30 секунд, породив 2 ворогів"

В обох випадках позиції камери визначалися б, а також поведінка противника.

Те, як я це бачу, те, як ви визначаєте ці точки, безпосередньо впливатиме на те, як працюватиме редактор рівнів, або що у вас є.

Чи були б переваги одного підходу над іншим?

Відповіді:


7

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

  1. Позиція, з якої вони вперше видно, що найкраще візуалізується як точка
  2. Відстань від нижнього екрана, коли слід їх нерестувати.

Тоді ви можете візуалізувати відстань від нижньої частини екрана як вертикальну лінію, спрямовану вниз від нерестового вузла (що може бути зображене як сіра версія версії противника чи якась така). Коли нижня частина екрана торкнеться цієї лінії, вона породжує. Це дозволяє повністю редагувати ворога повністю в якомусь візуальному редакторі, а також давати огляд всього потоку гри.


Re 2) Звичайно, при експорті вам доведеться відмінити код цього коду (тобто в рядку, які точки нересту повинні стати активними, оскільки для цієї системи вам потрібно знати деякі точки нересту, перш ніж вони стануть видимими. Однак, детальніше, це дійсно найбільш логічний спосіб.
Кай

1
Як примітка, переконайтеся, що ви використовуєте редактор, який дозволяє легко переміщувати вузли масово. Під час налаштування рівня shmup ви будете вставляти та видаляти ворогів, і постійно налаштовувати таймінги посередині свого рівня, а необхідність зміщення всіх ваших об'єктів одна за одною вб'є вас.
ZorbaTHut

Мені подобається ця ідея, оскільки це дійсно полегшить редагування, що завжди є плюсом
Кріс Уотерс

7

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

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

Ще одна проблема, яку я бачу, - це налаштування швидкості камери. Ви дійсно хочете піти і вам доведеться підробляти ворожі нерести лише тому, що ви змусили камеру рухатися трохи швидше або повільніше? Плюс вам доведеться грати через рівень жахливої ​​кількості разів, просто щоб знайти час нересту або налаштування для них.


2

Я настійно рекомендую взагалі не рухати камеру; розглядайте гравця та ворогів у одному і тому ж фіксованому просторі координат. Вороги та прокручування фону повинні бути узгоджені з незалежною шкалою часу. Це полегшує всю математику.


Я наполовину з вами згоден. Напевно фізика shmup є фальшивою і заснована на тому, що корабель насправді не рухається вперед. З цього приводу питання все ще актуальне, оскільки у вас є камера та інше, що потрібно врахувати
Iain

Справді, це не скасовує питання. Це все ще час проти (віртуальної) пройденої відстані. Незалежно від того, переміщуєте плеєр вперед або фон назад, це лише концептуальний рівень. Крім того, роз'єднання їх для полегшення математики може зробити інші речі набагато складнішими, наприклад, поставити ворогів на задній план (башточки), не допустити до них фонових об'єктів або мати збірну інформацію на задньому плані.
Кай

1

Я б пішов на положення камери. Використання часу зробить його досить важким, якщо ви хочете, щоб ворожий шлях збігався з деякою графікою у вашому картографічному файлі (як, наприклад, вороги за вигнутим шляхом). Крім того, це дозволяє прискорити прокрутку, не змінюючи ікру.
Зворотній бік полягає в тому, що прискорення прокрутки змусить ворогів прийти швидше. Що можна вважати плюсом (прискорення буде складним) або негативним (швидкість прокрутки впливає на темп).


1

Я також працюю над грою в космічний шутер. Що я зробив, я використав порожній ігровий об'єкт під назвою GameController. додав компонент сценарію під назвою GameController.cs, який керує нерестовою частиною,

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

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


0

Я розміщую їх на великому тлі карти і включаю їх початковий шлях руху на цій карті. Таким чином я міг пізніше змінити шлях камери змістовно, замість того, щоб змінювати і шлях, і терміни окремо.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.