更改精灵位置加速度计已更改

时间:2012-04-12 06:55:53

标签: android andengine game-engine

我是AndEngine的新手。我使用animatedSprite和Sprite Object。我想在加速度计的基础上移动Sprite,但我也不想移动animatedSprite。我想要physicsworld实现

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将根据加速度计移动,但身体不会移动。

1 个答案:

答案 0 :(得分:2)

您应该创建两个不同的实体并将其附加到您的精灵。 您想要移动的Body应该设置为BodyType.DynamicBody,另一个应该是BodyType.StaticBody。

要查看加速度计和身体示例,请检查以下内容: http://code.google.com/p/andengineexamples/source/browse/src/org/anddev/andengine/examples/PhysicsExample.java