2015-12-16 2 views
2

Я хочу реализовать вращающийся прямоугольник вокруг cicrle таким образом, что круг не имеет вращения, а прямоугольник имеет. Все объекты - объекты Box2D Body. Вот фотография, что я хочу иметь: enter image description hereКак реализовать вращающийся прямоугольник вокруг круга в libGDX Box2D?

В моем случае прямоугольник касается круга, но я думаю, что это не имеет значения.

Сначала я попытался сделать это с двумя Ficture s для того же Body, но возникла проблема с вращением: у меня не было одной фикции с поворотом, а другая без нее.

Я думаю, это должно быть как-то связано с суставами, но я не знаю, что именно Joint Я должен использовать. Может быть, есть другие решения?

ответ

0

Я думаю DistanceJointDef сделает уловки

вы могли бы поставить радиус, если окружность как расстояние с небольшим запасом, если вы хотите

вы также должны уменьшить трение тел так прямоугольник может двигаться плавно

DistanceJointDef djd = new DistanceJointDef(); 
    djd.bodyA = bodyRactangle; 
    djd.bodyB = bodyCirlce; 
    djd.length = radius + margin; 
    world.createJoint(djd); 

bodyRactangle является dynamic тело

bodyCirlce является static тело

попробовать, что для начала, надеюсь, что это полезно

удачи !!

+0

Мой круг не может быть '' 'статическим''', потому что он может двигаться. Во всяком случае, когда я реализовал '' 'DistanceJointDef''' с двумя' '' динамическими''' телами, я получаю такой результат: мой Rectangle вращается вокруг Circle, когда я '' setLinearVelocity'' круга по оси Y. И '' 'setAngularVelocity (0)' '' не помогает. Что может быть причиной этого? – OneOne