Android 和发动机旋转所有连接的机构

Android 和发动机旋转所有连接的机构,android,box2d,andengine,Android,Box2d,Andengine,我在Andengine中使用Box2D物理引擎创建了以下六边形结构。当另一个球和这个结构碰撞时,我想用物理方法旋转整个结构 请在此处查找参考图像: 我用车身尝试了焊接接头和旋转接头,但未按要求执行正确的运动。所有主体均连接有焊接接头,顶点具有旋转接头,中心主体为静态 RevoluteJointDef revoluteJointDef1 = new RevoluteJointDef(); revoluteJointDef1.initialize(centerB, movingBody[i], ce

我在
Andengine
中使用
Box2D
物理引擎创建了以下六边形结构。当另一个球和这个结构碰撞时,我想用物理方法旋转整个结构

请在此处查找参考图像:

我用车身尝试了
焊接接头
旋转接头
,但未按要求执行正确的运动。所有主体均连接有
焊接接头
,顶点具有
旋转接头
,中心主体为静态

RevoluteJointDef revoluteJointDef1 = new RevoluteJointDef();
revoluteJointDef1.initialize(centerB, movingBody[i], centerB.getWorldCenter());
revoluteJointDef1.enableMotor = true;
revoluteJointDef1.motorSpeed = 0;
revoluteJointDef1.maxMotorTorque = 1f;
this.mPhysicsWorld.createJoint(revoluteJointDef1);
是否有任何其他方法来执行整个结构的平滑旋转?
谢谢。

哦!我自己找到了解决办法。。。我做了和我在第一次评论我的问题时提到的一样的事情,我把球放在一个大的圆形物体上

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);
}

并通过圆体与中心的旋转关节来实现旋转。感谢他们的努力。

我是否可以添加一个大的圆形圆盘体,并在其顶部连接球,从而旋转所有的圆盘体?您的结构是否需要由多个圆盘体组成,或者它可能是单个实体上的多个装置?我用多个实体构建它,但是如果可以检测单个实体上的单个装置,那么就可以了。BeginContact回调给您一个b2Contact,您可以从中获取开始接触的两个装置。