Змусьте гравця плавно бігати по сходах


11

У мене гра 2D Platform, де гравець завжди бігає праворуч, але місцевість не завжди горизонтальна. Приклад:

Приклад

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

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

Як тут

Відповіді:


11

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

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

Інша ідея - поставити один обмежувальний ящик від голови персонажа до kness з більшою шириною, ніж коробка символу.

Коли гравець стикається з чимось, чого немає у полі "A", ви можете перемістити гравця на те, що він зіткнувся.

_________________
|    |     |    |
|    |     |    |
|  A | pla | A  |
|____| yer |____|
     |     | _________________________ <- step 
     |     | |      
--------------------------------------------- <- ground

12

Існує три загальні підходи до роботи зі сходами у відеоіграх:

Підхід "Маріо" полягає в тому, що ви повинні стрибати, щоб піднятися сходами.

Підхід "Castlevania" полягає в тому, що рух вгору / вниз по сходах - це різний рух; ви повинні натиснути «вгору» на контролері, і для проходження сходів відтворюється спеціальна анімація «сходження на сходи». Варіант цього варіанту - підхід "Resident Evil", коли рух по сходах вгору / вниз трактується як повний пробій, який грає, коли гравець натискає кнопку взаємодії; не допускається жодне інтерактивне сходження по сходах.

Підхід "Майже всі інші" - той, про який ви згадали: поводиться зі сходами так, ніби насправді пандус. Залежно від того, що це за гра, ви можете розмістити пандус на різній висоті відносно сходів. Зазвичай у 2D грі трюк "сходи - це фактично пандус" менш помітний для гравця, якщо рампа знаходиться на рівні з нижніми кутами кожного кроку сходів, тоді як у 3D-грі це зазвичай менш помітно, якщо рампа знаходиться на рівні з верхніми кутами кожного кроку. (як у 2D грі легше помітити, якщо ноги персонажа пливуть над землею, і тому ти хочеш мінімізувати це, тоді як у 3D-грі легше помітити, чи ступні персонажа пробиваються через землю, і так ти хочуть мінімізувати це).


Прекрасне зауваження щодо поплавця / відсікання на різних графічних точках.
Кролтан

Ваша інформація зовсім неправильна. Тільки в старих іграх з маріо потрібно стрибати, щоб піднятися сходами. Але я думаю, що це очевидно. Але мешканці зла безумовно також мали сходи, на які можна піднятися інтерактивно!
Тара

4

Більшість методів, з якими я стикався, вже було сказано вище, але є ще один, про який не згадувалося. Коли гравець стикається з вертикальною перешкодою, яка досить коротка (скажімо, 1/3 їх висоти), просто поставте їх на вершину. Наприклад, Minecraft та Source Engine використовують такий підхід у подібній ситуації. Крім того, цей метод дозволяє все-таки використовувати чисту AABB для всієї фізики, не піддаючи гравцю через біль, що постійно потребує стрибків вгору по сходах.


Було б добре, якби ви могли пояснити, як виявити такі перешкоди.
Тара

0

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

Це схоже на ідею карти висоти, детально описану в цій статті: http://info.sonicretro.org/SPG:Solid_Tiles#Slopes_And_Curves

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

У цій статті також є хороший огляд різних понять нахилу: http://higherorderfun.com/blog/2012/05/20/the-guide-to-implementing-2d-platformers/

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