我正在按照这个惊人的教程 ( http://www.matim-dev.com/revolute-joint.html ) 创建一个 RevoluteJointDef,就像博客描述的那样。一切都按照说明进行,但是我遇到了不良行为。
问题:当我的身体(1x1 米)球跌倒(碰撞)旋转体时,即使我将其扭矩设置为非常高的值,它也会减速一段时间。
我想要什么:当我的身体与这个旋转的身体碰撞时,它应该表现得就像它在撞击地面一样。旋转体不应减速。
这是我的代码:
Rectangle rotatingRectangle = new Rectangle(x_+120, y_, 240, 10,vbom);
rotatingRectangle.setColor(Color.RED);
final Body rotatingRectangleBody = PhysicsFactory.createBoxBody(simulationPhysicsWorld, rotatingRectangle, BodyType.DynamicBody, PhysicsFactory.createFixtureDef(1, 0.5f, 1f));
simulationPhysicsWorld.registerPhysicsConnector(new PhysicsConnector(rotatingRectangle, rotatingRectangleBody, true, true));
GameScene.this.attachChild(rotatingRectangle);
revoluteJointDef = new RevoluteJointDef();
revoluteJointDef.initialize(staticRectBody, rotatingRectangleBody, staticRectBody.getWorldCenter());
revoluteJointDef.enableMotor = true;
revoluteJointDef.motorSpeed = (float)Math.toRadians(-60);
revoluteJointDef.maxMotorTorque = 1000000000;
与这个旋转体碰撞的对象是 Sprite:
FixtureDef PLAYER_FIX= PhysicsFactory.createFixtureDef(10.0f, 0.5f, 0.1f);
simulationSpriteProjectile= new Sprite(900,camera.getHeight()/2, resourcesManager.simulationTextureRegionProjectile, vbom);
simulationBodyProjectile = PhysicsFactory.createCircleBody(simulationPhysicsWorld, simulationSpriteProjectile, BodyType.DynamicBody, PLAYER_FIX);
我怎样才能做到这一点?