Box2d Loop Shape, определите плавность приземления - PullRequest
1 голос
/ 13 мая 2011

Я пишу игру, в которой фигура круга попадает на b2LoopShape, состоящую из нескольких сотен вершин.

Я пытаюсь определить, является ли моя посадка гладкой или нет (посадка вдоль края или перпендикулярно краю) с помощью контактного прослушивателя, но не могу сделать это правильно.

Есть идеи?

1 Ответ

0 голосов
/ 17 июня 2011

Форма петли состоит из нескольких краевых сегментов.Вам нужно будет перебрать все сегменты ребер и найти ближайшую точку на каждом ребре к центру вашего круга.Ближайшим из них должна быть точка, фактически используемая для столкновения.Если он находится на одной из «вершин» сегмента ребра, к которому он принадлежит, окружность попадает в конец ребра.Если он находится где-то вдоль середины края, он приземлился плавно.

Возможно, я неправильно понимаю, что вы подразумеваете под «плавно», но в любом случае, если вы сделаете вышеуказанное, у вас будут две конечные точки:край, который был фактически поражен, и направление движения круга, так что вы можете использовать их, чтобы решить для себя, гладкий он или нет.

...