2013-06-05 2 views
0

В настоящее время я пытаюсь реализовать функцию «crouch» в своей игре. Я использую WCK с Box2D.Box2D AS3 - Обновление формы или Hitbox?

У меня есть что-то довольно основное, я генерирую свой главный символ как расширение формы. Это означает, что столкновение автоматически генерируется из getgo. Это замечательно для многих вещей, но не для всех.

У меня есть функция приседания/рулона. Проблема в том, что hitbox для приседания и стояния одинаковы, поэтому, если коробка падает на вас, а приседание «levitates» ontop из вас, так как hitbox по-прежнему остается хитом.

Как я могу «освежить» столкновение с формой? Есть ли способ удалить столкновение и сделать пересчет Box2D?

+0

похоже, что нет другого способа, кроме как изменить форму столкновения – Cherniv

ответ

0

Можно фильтровать контакты и предотвращать их (используя прослушиватель контактов или итерацию списка контактов в мире), но я думаю, что есть лучшие способы делать то, что вы хотите.

Вы можете разделить корпус на две части и соединить их с призматическим соединением (ограничения и двигатель включены, collideConnected disabled). Стоя, у вас будет двигатель, толкайте части друг на друга до верхнего предела, и при приседании вы будете тянуть их вместе до нижнего предела, тем самым уменьшая высоту.

Если вам нужны действительно разные формы (например, прямоугольник при стоянии и круг для катания по типу метрополии), это может сработать: добавьте обе формы в тело и используйте фильтрацию маски, чтобы предотвратить тот, который вам не нужен сталкиваясь с чем угодно.

Смежные вопросы