2011-03-07 68 views
0

在我的应用程序中,用户可以移动或旋转box2d灯具。碰撞检测工作正常。但是,如果我使用SetSensor(true)方法将灯具设置为传感器,则碰撞检测反应会很奇怪。 在下面的图片中,红色矩形是传感器,但是如果其他夹具与黑色边框碰撞,也会检测到碰撞。Box2d传感器旋转问题

图片:http://img851.imageshack.us/img851/7292/rect.png

是否有可能只有红色矩形作为传感器反应?

BR

回答

0

我找到了帮助在这里: Box2D Forum

我只是忘了检查触点触碰(与IsTouching()方法)!现在它工作正常!

0
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);