0

私のアプリでは、ユーザーはbox2dフィクスチャを移動または回転させることができます。衝突検出は正常に機能します。しかし、フィクスチャをセンサーとして設定した場合、SetSensor(true)メソッドを使用すると、衝突検出の反応がおかしくなります。次の図では、赤い長方形がセンサーですが、他の器具が黒い境界線と衝突した場合にも衝突が検出されます。

画像: http: //img851.imageshack.us/img851/7292/rect.png

赤い長方形だけがセンサーとして反応する可能性はありますか?

BR

4

2 に答える 2

0

私はここで助けを見つけました: Box2Dフォーラム

連絡先がタッチしているかどうかを確認するのを忘れました(IsTouching()メソッドを使用)。今では正常に動作します!!!

于 2011-03-14T17:19:53.127 に答える
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);
于 2012-12-07T15:30:47.357 に答える