2013-02-08 21 views
3

我想用一個物理開發一個使用andengine gles2錨中心的動態壁紙。但是當我添加一個物理對象時,它向上移動。而不是向下移動由於重力
什麼是我想提出的錯誤 請幫我理清問題爲什麼物理機體自動向上移動到引擎gles2錨中心動態壁紙

這裏是我的代碼

FixtureDef FIXTURE_DEF = PhysicsFactory.createFixtureDef(1, 0.5f, 
       0.5f); 
mPhysicsWorld = new PhysicsWorld(new Vector2(0, 
         SensorManager.GRAVITY_EARTH), false); 
final AnimatedSprite animatedSprite; 
animatedSprite = new AnimatedSprite(500, 250, 
         this.mBoxFaceTextureRegion, this.getVertexBufferObjectManager()); 

body = PhysicsFactory.createBoxBody(this.mPhysicsWorld, animatedSprite, 
         BodyType.DynamicBody, FIXTURE_DEF); 

scene.attachChild(animatedSprite); 
animatedSprite.animate(200); 
mPhysicsWorld.registerPhysicsConnector(new PhysicsConnector(
         animatedSprite, body, true, true)); 
+1

乘以-1重力的影響? – David 2013-02-08 19:05:06

+0

不,我沒有做任何事情上面的代碼沒有multiplaction – 2013-02-08 19:06:57

+1

也許改變mPhysicsWorld(SensorManager.GRAVITY_EARTH,0)。 – David 2013-02-08 19:07:54

回答

5

-1只需乘SensorManager.GRAVITY_EARTH

0

設置負重力對傳感器數據沒有正確響應。通過在覆蓋的方法**onAccelerationChanged()**中增加傳感器數據的加速度,可以使傳感器平坦地落下。

public void onAccelerationChanged(final AccelerationData pAccelerationData) { /* Add constant value for vertical gravity*/ final Vector2 gravity = Vector2Pool.obtain(pAccelerationData.getX(), pAccelerationData.getY() + 4.0); this.mPhysicsWorld.setGravity(gravity); Vector2Pool.recycle(gravity); }

這會使你的PHY世界真正的重力體驗,您將得到由對象傳感器數據正確