Andengine - RevoluteJointDef 扭矩
Andengine - RevoluteJointDef torque
我正在按照这个 惊人的 教程 (http://www.matim-dev.com/revolute-joint.html) 来创建 RevoluteJointDef,就像博客中描述的那样。
一切都按照说明进行,但我遇到了不良行为。
问题:
当我的 body(1x1 米)球掉落(碰撞)旋转的 body 时,即使我将其扭矩设置为非常高的值,它也会减速一段时间。
我想要的:
当我的 body 与这个旋转的 body 相撞时,它应该表现得就像它撞到地面一样。旋转的body应该不会减速。
这是我的代码:
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;
与这个旋转body碰撞的object是一个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);
如何实现?
我认为此页面包含您需要的示例代码和引擎示例。
https://github.com/nicolasgramlich/AndEngineExamples/blob/GLES2/src/org/andengine/examples/PhysicsRevoluteJointExample.java
这应该有所帮助!
我正在按照这个 惊人的 教程 (http://www.matim-dev.com/revolute-joint.html) 来创建 RevoluteJointDef,就像博客中描述的那样。 一切都按照说明进行,但我遇到了不良行为。
问题: 当我的 body(1x1 米)球掉落(碰撞)旋转的 body 时,即使我将其扭矩设置为非常高的值,它也会减速一段时间。
我想要的: 当我的 body 与这个旋转的 body 相撞时,它应该表现得就像它撞到地面一样。旋转的body应该不会减速。
这是我的代码:
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;
与这个旋转body碰撞的object是一个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);
如何实现?
我认为此页面包含您需要的示例代码和引擎示例。 https://github.com/nicolasgramlich/AndEngineExamples/blob/GLES2/src/org/andengine/examples/PhysicsRevoluteJointExample.java
这应该有所帮助!