Проблема с вращением датчика Box2d - PullRequest
0 голосов
/ 07 марта 2011

в моем приложении пользователь может перемещать или вращать прибор box2d.Обнаружение столкновения работает отлично.Но если я установлю прибор в качестве датчика, с помощью метода SetSensor (true), обнаружение столкновения отреагирует странно.На следующем рисунке красный прямоугольник является датчиком, но столкновение также обнаруживается, если другой прибор сталкивается с черной границей.

Изображение: http://img851.imageshack.us/img851/7292/rect.png

Возможно ли, что толькокрасный прямоугольник реагирует как сенсор?

BR

Ответы [ 2 ]

0 голосов
/ 07 декабря 2012
b2BodyDef bodyDef;
bodyDef.type = b2_staticBody;
bodyDef.position.Set(position.x/PTM_RATIO, position.y/PTM_RATIO);
bodyDef.userData = NULL;
b2Body *body = _game.world->CreateBody(&bodyDef);

b2PolygonShape dynamicBox;
dynamicBox.SetAsBox(size.x/2/PTM_RATIO, size.y/2/PTM_RATIO);

b2FixtureDef fixtureDef;
fixtureDef.shape = &dynamicBox;
fixtureDef.isSensor = true;

body->CreateFixture(&fixtureDef);
body->SetTransform(body->GetPosition(), rotatingAngle);
0 голосов
/ 14 марта 2011

Я нашел помощь здесь: Box2D Forum

Я просто забыл проверить, касается ли контакт (с помощью метода IsTouching ())! Теперь работает нормально !!!

...