Як виявити виступи?


18

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

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


Це питання було створено як канонову версію двох попередніх питань. Дивіться метадискусію тут .
doppelgreener


1
Крім того , що зв'язує питання говорили в мета: gamedev.stackexchange.com/questions/38066 / ... і gamedev.stackexchange.com/questions/15491 / ...
MichaelHouse

Відповіді:


22

Відео для Overgrowth Alpha 132 показує, як вони здійснили сходження на уступ.

Їх метод повинен працювати в будь-якому двигуні, навіть у двовимірних двигунах, де ви б використовували прямокутник і коло замість циліндра і сфери.

Їх виявлення уступу включає дві частини:

Виявлення стін (за допомогою сфери)

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

Виявлення леджів (за допомогою циліндра)

Якщо гравець стикається зі стіною, циліндр зміщується вниз з певної відстані вище позиції гравця, поки він не торкнеться виступу. Це визначає три речі:

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

Дивовижний метод та фантастичний приклад +1
Багстер

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

1
@Dudeson в минулому я використовував рентгенограму, щоб спочатку знайти поверхню виступу, перш ніж слідкувати за допомогою перевірки гучності, щоб перевірити, чи є достатньо безперешкодного приміщення, щоб піднятися вгору. Оскільки радіоканал спрямований, він не сприймає стелі як помилкові позитиви - хоча він може все-таки забитися на наступному поверсі вгору, якщо походження занадто високе. Точні показники залежатимуть від багатьох деталей кожної гри - розмір символів, досяжність руки, зазор у дизайні рівня, швидкість падіння тощо
DMGregory

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