在我的应用程序中,用户可以移动或旋转 box2d 夹具。碰撞检测工作正常。但是,如果我使用 SetSensor(true) 方法将夹具设置为传感器,则碰撞检测的反应很奇怪。在下图中,红色矩形是传感器,但如果其他灯具与黑色边框发生碰撞,也会检测到碰撞。
图片:http: //img851.imageshack.us/img851/7292/rect.png
是否可能只有红色矩形作为传感器起反应?
BR
在我的应用程序中,用户可以移动或旋转 box2d 夹具。碰撞检测工作正常。但是,如果我使用 SetSensor(true) 方法将夹具设置为传感器,则碰撞检测的反应很奇怪。在下图中,红色矩形是传感器,但如果其他灯具与黑色边框发生碰撞,也会检测到碰撞。
图片:http: //img851.imageshack.us/img851/7292/rect.png
是否可能只有红色矩形作为传感器起反应?
BR
我在这里找到了帮助: Box2D 论坛
我只是忘了检查联系人是否正在触摸(使用 IsTouching() 方法)!现在它工作正常!!!
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);