Box2D коллектор столкновений?

Я видел вокруг, что есть b2Manifold. Чего я хочу добиться, так это определить, произошло ли столкновение с верхней частью одного из сталкивающихся объектов.

Я уже настроил b2ContactListener, и он отлично работает. Я просто хотел бы обеспечить более точные столкновения, настроив многообразие для определения того, находится ли одно тело b2Body поверх другого тела b2Body, с которым оно столкнулось.

Как бы я это сделал?

Спасибо!

http://postimage.org/image/kbfr7c5db/


person SimplyKiwi    schedule 18.07.2012    source источник
comment
Посмотрите на «многообразия столкновений». Вы можете получить их из функций прослушивателя контактов и проверить там нормальность, но не все так просто. Это может помочь iforce2d.net/b2dtut/collision-anatomy   -  person iforce2d    schedule 18.07.2012
comment
Вау, это довольно сложно. Если бы я дал вам награду в 50 баллов, вы бы показали мне точный код, который мне нужен, чтобы увидеть, приземлился ли CCSprite с прикрепленным к нему b2Body поверх другого CCSprite с прикрепленным к нему b2Body. В настоящее время я использую только учебник Рэя Вендерлиха здесь: raywenderlich.com/505/ ... И у меня эта часть работает, мне просто нужно с этим разобраться.   -  person SimplyKiwi    schedule 19.07.2012
comment
Я ничего не знаю о вещах CC, извините. Может быть, достаточно было бы просто посмотреть на положение тел при их столкновении?   -  person iforce2d    schedule 19.07.2012
comment
Позиции означают точечные? Они постоянно двигаются, так что, к сожалению, это было бы неуместно, если только вы не имели в виду что-то другое.   -  person SimplyKiwi    schedule 19.07.2012
comment
Позиции как в body->GetPosition(), когда они сталкиваются. Вы имеете в виду, что хотите постоянно отслеживать, когда что-то находится выше или ниже? Я думаю, вы могли бы посмотреть на расположение точки многообразия по отношению к телу. Более того, вы можете поместить приспособление датчика на тело в соответствующих местах и ​​использовать прослушиватель контактов, чтобы знать, когда датчик касается чего-либо - это рекомендуемый способ. См. тему вопроса «Могу ли я прыгать» на моем сайте. Датчик может быть где угодно на теле, и у вас может быть более одного, например. tinyurl.com/83jyvzh   -  person iforce2d    schedule 19.07.2012
comment
Хорошо, я так и сделаю. Последний вопрос: есть ли у датчиков положение? Могу ли я проверить, находится ли один датчик над другим? Потому что все еще есть шанс, что я могу ударить датчик сбоку.   -  person SimplyKiwi    schedule 19.07.2012
comment
Вы можете сделать датчик любой формы, которая вам нужна, чтобы предотвратить удар сбоку. Это может быть крошечный кружок или огромная коробка, и у вас может быть их куча.   -  person iforce2d    schedule 19.07.2012
comment
Я смущен. В любую форму можно попасть сбоку, так какое это имеет значение? Я также смотрел на этот вопрос (он пытался сделать то же самое, что и я): in-box2d" title="различать ориентацию поверхности столкновения в box2d"> stackoverflow.com/questions/7459208/   -  person SimplyKiwi    schedule 19.07.2012
comment
Не могли бы вы показать несколько примеров форм, которые вы используете, и случаи, которые вы хотели бы различать.   -  person iforce2d    schedule 19.07.2012
comment
Я также сделал изображение, объясняющее, что я хочу сделать, я добавил ссылку на вопрос выше.   -  person SimplyKiwi    schedule 19.07.2012
comment
Подождите, мы говорим об односторонних платформах? Это может помочь iforce2d.net/b2dtut/one-way-walls   -  person iforce2d    schedule 19.07.2012
comment
Эта ссылка, кажется, делает именно то, что я хочу. Хотя там много вещей, которые меня смущают. Как значения скорости и так далее. Я не использую значения скорости в Box2D, поэтому это сбивает с толку. Если вы можете опубликовать соответствующий код без этих запутанных значений скорости, я приму ваш ответ и проголосую за него! Спасибо за всю помощь!!! :)   -  person SimplyKiwi    schedule 19.07.2012
comment
Извини чувак. Соответствующий код находится на этой странице, и он не поставляется без значений скорости... как вы сказали, ваши позиции будут постоянно перемещаться.   -  person iforce2d    schedule 20.07.2012
comment
Хорошо, спасибо за помощь, буду разбираться дальше!   -  person SimplyKiwi    schedule 21.07.2012