2012-04-12 36 views
0

我是AndEngine中的新成員。我使用animatedSprite和Sprite對象。我想在加速度計的基礎上移動Sprite,但我不想移動animatedSprite。我希望物理世界實現在加速表上更改精靈位置更改

private void addBottomFace(final float pX, final float pY) { 
    myBottomSticFace = new Sprite(pX, pY, myBottomStickTextureRegion); 
    myBottomStickBody = PhysicsFactory.createBoxBody(this.myPhysicsWorld, myBottomSticFace, BodyType.DynamicBody, myFixtureDef); 

    this.myScene.attachChild(myBottomSticFace); 
    this.myPhysicsWorld.registerPhysicsConnector(new PhysicsConnector(myBottomSticFace, myBottomStickBody, true, true)); 
} 


@Override 
public void onAccelerometerChanged(AccelerometerData pAccelerometerData) { 
    final Vector2 gravity = Vector2Pool.obtain(pAccelerometerData.getX(), pAccelerometerData.getY()); 
    myBottomSticFace.setPosition(myBottomSticFace,getX() + pAccelerometerData.getX(), myBottomSticFace,getY()); 
    Vector2Pool.recycle(gravity); 
} 

使用此代碼mBottomSticFace將根據加速計移動,但body不移動。

+0

你將不得不向我們展示你的代碼,以你的精靈和AnimatedSprite和你的物理世界中的實現的交易。 – Lokiare 2012-04-12 16:51:48

回答

2

你應該創建兩個不同的物體並將其附加到你的精靈。 您想要移動的身體應該設置爲BodyType.DynamicBody,另一個應該是BodyType.StaticBody。

要查看加速度計和身體的例子,看看這個: http://code.google.com/p/andengineexamples/source/browse/src/org/anddev/andengine/examples/PhysicsExample.java

+0

我想要兩個動態類型的主體。但我只希望其中一個從加速計移動。 – 2012-04-13 05:05:34

+0

你需要在身體上施加什麼力量,不應該與加速計一起移動? – 2012-04-13 14:35:20

+0

有一個動畫雪碧,我不想用加速計移動。感謝您的回覆,但我做body.setLinearVelocity(重力);現在雪碧運行良好。現在我想增加精靈的體重,我如何增加精靈的體重 – 2012-04-16 07:08:41