2013-02-23 67 views
1

使用AndEngine動,我想等我創建一個雪碧移動對象:物理對象不會與精靈

tower1 = new Sprite(50, 150, this.tower1TextureRegion, 
      this.getVertexBufferObjectManager()); 
tower1Body = PhysicsFactory.createBoxBody(physicsWorld, tower1, 
      BodyType.KinematicBody, towerFixtureDef); 
this.physicsWorld.registerPhysicsConnector(new PhysicsConnector(tower1, 
      tower1Body, true, true)); 


,然後定義移動:

moveTower1 = new MoveXModifier(actualDuration, tower1.getX(), -150f) 
    { 
    @Override protected void onModifierFinished(IEntity 
    removeTower(tower1); } 
    }; 
    tower1.registerEntityModifier(moveTower1); 

當我運行這個應用程序,精靈正在移動,但物理對象不是。我做錯了什麼?

回答

0

如果您將精靈附加到身體上,則無法再使用修改符將其移動。物理世界現在基本上擁有它的位置(即,如果由於施加力而使物體移動,則連接的精靈將隨之移動)。您只能通過底肥力身體本身移動它,即

tower1Body.applyLinearImpulse(impulseX, impulseY, pointX, pointY); 

,或者

tower1Body.applyForce(forceX, forceY, pointX, pointY); 

或線性速度,

tower1Body.setLinearVelocity(vX, vY); 

也被警告,共物理世界中的座標不同於你場景中的座標。例如,tower1.getX()是精靈tower1的場景中的座標,但在物理世界中,正文的位置會因/ PIXEL_TO_METER_RATIO_DEFAULT而有所不同。

希望這會有所幫助。

+0

非常感謝!有用 ! :) 謝謝! – mullen18 2013-02-23 18:45:24

+0

歡迎您! – Steven 2013-02-23 18:48:15

1

隨着box2d你需要移動身體,而不是精靈。你應該想到的精靈像木偶,由身體控制。