Як 2D гра на зразок Zelda обробляє персонажа, який знаходиться за будівлями, де показана лише його частина?


28

Я намагаюся розробити просту гру в стилі Zelda. Я знайшов цю дуже корисну тему

Як LoZ: Посилання на минуле впоралося зіткненнями під плитки?

що я використовую в якості посилання для розробки свого механізму виявлення зіткнень. Однак я щось не зміг зрозуміти. Коли Лінк знаходиться за будівлями, відображається лише його частина. Чи може хто-небудь допомогти мені зрозуміти, як можна досягти цього ефекту? Чи не будівля є частиною фону?


Мені подобається думати про стиль візуалізації як про ґрунтовий шар (трава, настил плитки тощо), шар об'єкта (горщики, вороги, чагарники, посилання тощо) та шар неба (верхівки даху, підняті горщики, верхівки дерев тощо). Логіка переміщення речей між шарами може бути дещо дивною на прикладі горщиків, але це інша справа.
Бенджамін Дангер Джонсон

Відповіді:


32

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

Ця частина даху виступає над гравцем, і тому гравець може йти за цією будівлею.

Ось приклад зображення з моєї гри, щоб пояснити краще: введіть тут опис зображення


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

2
@Tinadm це не обов'язково має бути цілою дахом, це може бути просто ділянка даху, яка буде малювати поверх гравця, який виведений після всього іншого.
Тетрад

7
+1 для дивовижної графіки. Дійсно допомагає наочним учням.
UnderscoreZero

1
Я майже впевнений, що старі JRPG SNES використовували ту саму техніку. FF2, FF5 і т. Д. Техніка все ще діє.
Hatoru Hansou

1
Це ви добре бачите за допомогою емуляторів, наприклад, ZSNES, які дозволяють вручну вимикати та вмикати окремі шари.
Тобіас Кіенцлер

5

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

Розгляньте карту зверху вниз, наприклад,

  ABCDEFGHIJKL
1 +-----=----+
2 |  .    .  |
3 |    X   o |
4 | .        ||
5 |    .   . |
6 +--=-------+

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

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


Зверніть увагу, як ви можете легко змінити висоту камери таким чином, розтягуючи текстури об'єкта
Tobias Kienzler

1

Ви повинні мати змінну за глибиною, а зображення з найбільшою глибиною намалювати спочатку, потім інші з найменшою глибиною. А глибина кожного об'єкта повинна дорівнювати негативній його координаті y.

Depth=-y

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