Cocos2d Box2d множественное приспособление формы b2circle для одного тела с позиционированием - PullRequest
2 голосов
/ 04 ноября 2011

Кто-нибудь знает, как добавить 2 круговых прибора к одному b2body с желаемым расположением? Я знаю, как добавить два многоугольника к одному телу, используя m_centroid. Но как я могу сделать это для круговых приборов.

Любой ответ будет оценен. Я хочу склеить какой-нибудь предмет. Я пробовал суставы, но они все упругие. Я хочу статическое расстояние.

Спасибо всем!

1 Ответ

6 голосов
/ 04 ноября 2011

Вы должны создать два приспособления для вашего тела, и формы этих приспособлений должны быть b2CircleShape

//Create a body. You'll need a b2BodyDef, but I've assumed you know how to use these since you say you've created bodies successfully before.
b2Body* body = world->CreateBody(&bodyDef);

//Create the first circle shape. It's offset from the center of the body by -2, 0.
b2CircleShape circleShape1;
circleShape1.m_radius = 0.5f;
circleShape1.m_p.Set(-2.0f, 0.0f);

b2FixtureDef circle1FixtureDef;
circle1FixtureDef.shape = &circleShape1;
circle1FixtureDef.density = 1.0f;


//Create the second circle shape. It's offset from the center of the body by 2, 0.
b2CircleShape circleShape2;
circleShape2.m_radius = 0.5f;
circleShape2.m_p.Set(2.0f, 0.0f);

b2FixtureDef circle2FixtureDef;
circle2FixtureDef.shape = &circleShape2;
circle2FixtureDef.density = 1.0f;


//Attach both of these fixtures to the body.
body->CreateFixture(&circle1FixtureDef);
body->CreateFixture(&circle2FixtureDef);
...