2013-12-18 4 views
0

Мне нужно удалить определенный вектор из моих границ мира, например только левый. (box2d + cocos2d iphone)Снятие корпуса с коробкой2D

Это, как я установил границы:

screenBorderShape.Set(lowerLeftCorner, lowerRightCorner); 
screenBorderBody->CreateFixture(&screenBorderShape, 0); 
screenBorderShape.Set(lowerRightCorner, upperRightCorner); 
screenBorderBody->CreateFixture(&screenBorderShape, 0); 
screenBorderShape.Set(upperRightCorner, upperLeftCorner); 
screenBorderBody->CreateFixture(&screenBorderShape, 0); 
screenBorderShape.Set(upperLeftCorner, lowerLeftCorner); 
screenBorderBody->CreateFixture(&screenBorderShape, 0); 

Как я могу удалить левый один ТОЛЬКО?

Я знаю, что это:

screenBorderBody->DestroyFixture(b2Fixture *fixture) 

Но мне нужно, чтобы сделать это позже, так что я могу достичь этого крепление (имеющий указатель тела) без сохранения этой конкретной один, как глобальный?

Спасибо.

ответ

0

screenBorderShape.Set (lowerRightCorner, upperRightCorner); экранBorder-> CreateFixture (& screenBorderShape, 0);

Назовите этот светильник в левой арматуре или левой стене ....

После этого вы можете использовать screenBorderBody-> DestroyFixture (< # b2Fixture * крепление #>)

...

Путь

groundBox.Set (b2Vec2 (X1/PTM_RATIO, Y1/PTM_RATIO), b2Vec2 (X2/PTM_RATIO, Y1/PTM_RATIO)); нижний комплект светильник = groundBody-> CreateFixture (& groundBoxDef);

, а затем снимите нижнюю арматуру (слева в вашем случае)

В caseyou просто хочу, чтобы отменить столкновения сделать это, установив категории или биты маски таким образом