2013-03-27 78 views
0

所以,我一直是这样的:Box2D的身体不动

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

+0

你正在走向世界吗? – Axis 2013-03-27 20:33:40

+0

你是什么意思“踏入这个世界” 如果“我正在更新我的场景”是的,我在这里: registerUpdateHandler(physicsWorld); – 2013-03-27 20:52:21

+0

对不起我的错误 – Axis 2013-03-27 21:15:30

回答

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

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

  1. 以下述方式更改物理世界构造值

    mPhysicsWorld =新PhysicsWorld(新Vector2(0,SensorManager.GRAVITY_EARTH),假);

  2. 变化PhysicsConnector按照以下方式

    新PhysicsConnector(测试,身体,真实,TRUE);

我觉得第二个建议工作适合你,因为在你的代码中我看到你不更新位置以及旋转你的对象。