Войти
ПрограммированиеФорумФизика

Помогите с Box2d физикой для платформера

#0
4:13, 12 мар. 2020

Всем привет! Хочу написать платформер с физикой Box2d.
У меня есть перонаж - прямоугольник, который наклоняется в зависимости от рельефа карты bum2 | Помогите с Box2d физикой для платформера.

Все бы хорошо, но... Если персонаж подойдет к краю, то он упадет на бок и на этом все bum1 | Помогите с Box2d физикой для платформера. Как можно сделать так, что бы тело просто повторяло рельеф карты. Можно сказать, что бы прилипло к нему. Сделать тело очень плоским нельзя, т.к мне нужно обрабатывать соприкосновения с персонажем и сверху, да и это тоже не спасет от переворота при подходе к краю. Запретить телу крутиться тоже нельзя, т.к. ему нужно крутиться, когда оно повторяет рельеф карты. Единственное и сложное решение я пока что вижу это на всех частях карты прописать угол, но который должен поворачиваться персонаж и ставить ограничения на физическое тело, но я верю, что есть более простое и оригинальное решение. Буду признателен за помощь и любые предложения)


#1
10:22, 12 мар. 2020

Обычно делают персонаж из двух элементов, круг(для ног), сверху прямоугольник (для тела и головы) это позволяет отрабатывать коллизии. У меня был похожий кейс, я использовал только круг, наклон перса вычислялся по точке касания круга с землёй.

#2
17:44, 12 мар. 2020

Не забывайте, что у вас все таки физика. То есть это поведение нормально, иначе вы ломаете физику. Чтоб сделать то что вы хотите, лучше разделить отрисовку персонажа и его риг, как выше правильно заметили, риг разбить лучше на две части и запретить ему поворачиватся, а преодоление подъемов показывать через анимации спрайтов, у вас же в дальшейшем будут различные анимации состояний.
Понаблюдайте как человек в гору поднимается, он же не наклоняется перпендикулярно плоскости подъема.

#3
21:23, 18 мар. 2020

Пасибо) Особенно с шариком годный совет. Так и сделаю)

#4
13:07, 19 мар. 2020

В играх дофизической эпохи очень часто применяли трассировку луча.

ПрограммированиеФорумФизика

Тема в архиве.