У меня есть базовый контроллер персонажей, настроенный для 2D-платформера с Box2D, и я начинаю настраивать его, чтобы он чувствовал себя хорошо. У физических движков есть множество настроек, и мне не ясно, пишу ли я с физическим движком впервые, какие из них мне следует использовать. Должны ли прыжки применять силу для нескольких тиков? Импульс? Напрямую установить скорость? Как я могу остановить прилипание аватара к стенам, не убирая все его трение (или я убираю все трение, но только в воздухе)? Должен ли я моделировать персонажа как капсулу? Коробка с закругленными углами? Коробка с двумя колесами? Просто одно большое колесо? Я чувствую, что кто-то должен был сделать это раньше!
Похоже, в Интернете очень мало доступных ресурсов, которые не являются «первой физикой ребенка», и все они отрезаны там, где, я надеюсь, кто-то уже решил проблемы. Большинство примеров физических движков для платформеров имеют элементы управления с плавающим чувством, или прыжки в воздухе, или легко эксплуатируемое поведение, когда временное проникновение слишком велико, и т. Д.
Некоторые примеры того, что я имею в виду:
- Короткое нажатие прыжка прыгает на короткое расстояние; длинный кран прыгает выше.
- Короткое занос при остановке или изменении направления движения на высокой скорости.
- Устойчиво стоит на склонах (но, возможно, скатывается по ним при наклоне).
- Аналоговая скорость при использовании аналогового контроллера.
- Все остальное, что отличает хороших платформеров от плохих.
- Смею ли я предложить, стабильные движущиеся платформы?
Я действительно не ищу "эй, сделай это". Очевидно, что правильная вещь зависит от того, что я хочу в игре. Но я надеюсь, что кто-то где-то рассмотрел возможности и сказал: «Хорошо, метод A хорошо работает с X, метод B хорошо работает с Y, но это не работает с C», или имеет несколько рабочих примеров за пределами «if (key = = пробел) character.impulse (0, 1) "