Дизайн прокрутки екрану в стилі Mega Man


25

Класична серія Mega Man від NES використовує дуже специфічну техніку прокрутки, яку мені важко обернути головою. По суті, рівень розділений на "екрани", які мають однаковий розмір. Деякі екрани плавно прокручуються один до одного, створюючи ілюзію більш широких ігрових полів. Деякі екрани не дозволяють камері прокручуватися, поки плеєр не досягне краю екрана, в цей час відбувається перехід і не з’явиться наступний екран. Можливо також, що на одному екрані є більше одного переходу, наприклад, він має сходи, які піднімаються до одного екрана, але ви також можете піти вперед до іншого екрану.

Як можна моделювати ці екранні переходи?

Діаграма переходу екрана Mega Man

  • Екран 0 - це початковий екран, з якого починається гравець.
  • Екран 0-3 горизонтально плавно прокручується і представляється гравцеві як одне безперервне поле гри.
  • Оскільки відбувається перехід між екраном 3 та сусідніми екранами 4 та 5, камера не просунеться біля правого або верхнього краю екрану 3, якщо гравець не перейде до відповідного краю та не просунеться до наступного екрану.
  • Як тільки програвач переходить до будь-якого з країв переходу, введення користувача миттєво відключається, а камера переходить у нову область, після чого відновлюється введення користувача.

  • Синій екран (екран 5) відключив горизонтальну прокрутку, так що можливі лише вертикальні переходи.

  • Зелений екран (Екран 6) має вертикальний перехід назад до Екрану 5, але також дозволяє горизонтальне плавне прокручування до екрану 7.

Редагувати : Реалізація переходів з точки зору номерів призводить до цього:

Діаграма впровадження структури кімнати

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


1
така поведінка також присутня у 2D іграх із серії Metroid.
Спарр

Так, це по суті те саме. Різниця полягає в тому, що Метроїд IIRC дозволяв вертикально плавно прокручуватись у деяких приміщеннях / шахтах, тоді як у Mega Man ніколи не було вертикальної плавної прокрутки; завжди був перехід.
Зак Людина

Я чув, що це називається "флік-скринінг".
Блекі

Відповіді:


21

Це звучить як те, що вам потрібно, це концепція кімнат на відміну від екранів . Екрани 1-3 - це одна кімната, наприклад, ваші кімнати можуть мати будь-який розмір і форму, або навіть обмежувати розмір кратного екрана .

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

Кожна кімната мала б набір точок доступу, які відображаються на точки доступу іншої кімнати - створюючи точки переходу.


Дякую за пропозицію. Це те, що я спочатку хотів зробити, але, коли я намагався боротися з переходами, я потрапив у розумний блок перешкод. Скажімо, наприклад, є довга кімната з входом зверху в лівий кінець кімнати, а вихід у верхній частині правого кінця. Я думаю, спосіб вирішити це - мати невеликі регіони, які можуть спричинити перехід, гм?
Зак Людина

Трохи далі: концепція "кімнати" - це те, що я зараз маю у своїй грі. Кімнати можуть бути довільними за розмірами, але я ще не визначив, як переходити від кімнати до кімнати.
Зак Людина

1
@Zack: Камера слідкує за програвачем навколо. Межі камери ніколи не повинні перекривати приміщення поза тим, у якому знаходиться програвач (тобто якщо правий край вікна перегляду знаходиться проти правого краю цієї кімнати, камера не може рухатися праворуч). Якщо програвач проходить крізь стіну кімнати до сусідньої кімнати, попросіть камеру швидко відстежувати, поки вона не буде надійно всередині нової кімнати (для цього руху ви повинні турбуватися лише про вгору / вниз / вліво / вправо). За бажанням, якщо гравець підійде до стіни кімнати, візьміть автоматичне управління і змусіть їх рухатися вперед, щоб повністю опинитися всередині нової кімнати.
doppelgreener

1
@Zack: Здається, ваше редагування питань відповідає тому, що я думав. Положення гравця може переміщатися з заданої кімнати лише в тих місцях переходу (між y1 і y2 на вертикальній стіні, або x1 і x2 на горизонтальній стіні), і як тільки це стане, ви розміщуєте його позицію в сусідній кімнаті - уникнувши циклу "назад і назад" - і виконай візуальний перехід.
TreDubZedd

1
Ви також можете розглянути "кордон" навколо кожної кімнати, яка, як правило, не відтворюється для відтворення (за винятком перехідних регіонів). Ви можете графічно спроектувати свої кімнати таким чином, щоб грані, що не відтворюються, завжди містили «настінні» графіки, але перехідні регіони залишаються відкритими, як і решта кімнати. Ви можете підробити перехідне «перекриття», чекаючи, коли гравець повністю перейде на (грає) кордон, а в сусідній кімнаті переконайтесь, що нова позиція взагалі не перетинає кордон.
TreDubZedd

-8

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


7
Я розумію, що оригінальні розробники повинні були здійснити прокрутку таким чином, щоб завантажити плитки, спрайти і т. Д. Мені не потрібно реалізовувати систему, засновану на екрані, описану в моєму запитанні, що я дійсно хочу - це емуляція камери та / або рух прокрутки.
Зак Людина

4
-1 - Поділ ігрової зони на переривчасті шматки може вже не бути актуальним для завантаження, але все ж створює у гравців особливе відчуття місця та допомагає їм подумати зіставити область.

@Joe, як це стосується моєї відповіді? Я спеціально і безпосередньо звертаюся до фрагментів, розміром яких є кілька екранів. Я нічого не говорив про те, що шматки перериваються чи ні.
Спарр

Я хотів повідомити вам, що я не спростував вашу відповідь, але я не думаю, що це відповідає на моє запитання: "Як можна моделювати ці переходи екрану?".
Зак Людина

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