box2d的身体不动

时间:2013-03-27 20:27:02

标签: java android box2d andengine

所以,我有这样的事情:

physicsWorld=new PhysicsWorld(new Vector2(10, 10), false);
Rectangle test = new Rectangle(100, 100, 50, 50, vbom);

FixtureDef wallFixtureDef = PhysicsFactory.createFixtureDef(0, 0f, 0.5f);

Body body = PhysicsFactory.createBoxBody(physicsWorld, test, BodyType.DynamicBody, wallFixtureDef);
physicsWorld.registerPhysicsConnector(new PhysicsConnector(test, body));
body.setLinearVelocity(100, 100);

registerUpdateHandler(physicsWorld);

attachChild(test);

它不起作用,身体不动。 有什么想法吗?

GLES 2 AnchorCenter

2 个答案:

答案 0 :(得分:0)

你的物理世界注册到你的游戏场景。 它工作我的设备和身体正在移动。

    PhysicsWorld physicsWorld = new PhysicsWorld(new Vector2(10, 10), false);
    Rectangle test = new Rectangle(100, 100, 50, 50,
            getVertexBufferObjectManager());
    FixtureDef wallFixtureDef = PhysicsFactory
            .createFixtureDef(0, 0f, 0.5f);
    Body body = PhysicsFactory.createBoxBody(physicsWorld, test,
            BodyType.DynamicBody, wallFixtureDef);
    physicsWorld.registerPhysicsConnector(new PhysicsConnector(test, body));
    body.setLinearVelocity(100, 100);
    yourScene.registerUpdateHandler(physicsWorld);
    yourScene.attachChild(test);

答案 1 :(得分:0)

根据我的观点,您必须在代码中应用两项更改。

  1. 按以下方式更改物理世界构造函数值

    mPhysicsWorld = new PhysicsWorld(new Vector2(0,SensorManager.GRAVITY_EARTH),false);

  2. 按照以下方式更改PhysicsConnector

    new PhysicsConnector(test,body,true,true);

  3. 我认为第二个建议对您有用,因为在您的代码中,我看到您不会更新对象的位置和旋转。