0

我正在按照这个惊人的教程 ( 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);

我怎样才能做到这一点?

4

1 回答 1

1

我认为这个页面有你需要的示例代码和引擎示例。 https://github.com/nicolasgramlich/AndEngineExamples/blob/GLES2/src/org/andengine/examples/PhysicsRevoluteJointExample.java

这应该有帮助!

于 2015-03-20T11:40:20.927 回答