我在Andengine
中用Box2D
物理引擎创建了下面的六边形结构。当其他球与物理结构碰撞时,我想相对于中心旋转整个结构。
在此处找到参考图片:reference question
我尝试了weld joint
和revolute joint
身体但是没有按要求执行正确的动作。所有实体都附有weld joint
,顶点有revolute joint
,中心体是静态的,
RevoluteJointDef revoluteJointDef1 = new RevoluteJointDef();
revoluteJointDef1.initialize(centerB, movingBody[i], centerB.getWorldCenter());
revoluteJointDef1.enableMotor = true;
revoluteJointDef1.motorSpeed = 0;
revoluteJointDef1.maxMotorTorque = 1f;
this.mPhysicsWorld.createJoint(revoluteJointDef1);
还有其他方法可以实现整个结构的平滑旋转吗? 感谢。
答案 0 :(得分:0)
哦!我自己得到了解决方案......我做了同样的事情,就像我在第一个评论中提到的那样,我把球放在一个大圆体上,比如,
Body circleBody ... ;// having large radius
//for all balls arranged in hexagon structure
foreach BallBody b
{
WeldJointDef def = new WeldJointDef();
def.initialize(b, circleBody, b.getWorldCenter());
mPhysicsWorld.createJoint(def);
}
通过circleBody与中心的旋转关节得到旋转。谢谢谁付出了努力。