Як поводитися з анімованими дверима в ізометричній плитці


10

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

Ось двері закриті:

двері зачинені

і двері відчинилися:

двері відчинилися

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

Хтось стикався з подібним сценарієм? Якісь елегантні рішення?


2
Як ваша система сортування в даний час визначає порядок нанесення плитки?
Рой Т.

Відповіді:


4

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


4

Створіть три спрайти ...

  1. Двері закриті (як і ваш перший спрайт) - блокує рух
  2. Просто рамка (сторона у вашому випадку) дверей, але жодна двері - не блокує рух
  3. Просто двері у відкритому положенні - блокує рух

Коли двері зачинені, намалюйте спрайт 1 і розглядайте це як "блокатор", щоб гравці не могли пройти через нього.

Коли двері відчиняються, замініть цей спрайт на номер 2 (тільки дверцята). Потім помістіть спрайт №3 (тільки двері) в сусідню клітинку, в якій би знаходилися двері.

Закриття - це просто зняття дверей та заміна посту на пост + двері у закритому положенні.

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

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


3

Для сортування в 2D я використовую 2 хитрощі:

  • Додайте позицію землі до спрайтів - це точка, коли спрайт торкається землі (fe mens футів, стовбур дерев, рамка дверей) і сортуйте їх замість пікселів спрайтів. Таким чином спрайт не вплине на анімацію

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


1

Найкращий спосіб вирішити сортування об’єктів - це не сортування взагалі. Якщо ви використовуєте буфер глибини, ви можете вивести все за один прохід. Об'єкти, що мають більшу z-величину, будуть віддалені від об'єктів із меншим z-значенням.

Навіть якщо ваша гра 2D, вам все-таки слід розглянути можливість використання 3D-координат з буфером глибини, інакше ви назавжди танго за алгоритмом художника .


Щоправда, але як визначити положення Z? Тільки сортуючи
Кромстер

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