2013-03-27 76 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);

我覺得第二個建議工作適合你,因爲在你的代碼中我看到你不更新位置以及旋轉你的對象。