Android 更改加速表上的精灵位置已更改

Android 更改加速表上的精灵位置已更改,android,andengine,game-engine,Android,Andengine,Game Engine,我是安德林的新手。我使用动画精灵和精灵对象。我想在加速计的基础上移动精灵,但我不想同时移动动画精灵。我想要物理世界的实现 private void addBottomFace(final float pX, final float pY) { myBottomSticFace = new Sprite(pX, pY, myBottomStickTextureRegion); myBottomStickBody = PhysicsFactory.createBoxBody(this

我是安德林的新手。我使用动画精灵和精灵对象。我想在加速计的基础上移动精灵,但我不想同时移动动画精灵。我想要物理世界的实现

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不会移动。

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

要查看加速计和车身示例,请检查以下内容:

您必须向我们展示处理精灵和动画精灵以及物理世界实现的代码。我想要两个动态类型的主体。但是我只想要其中一个从加速度计上移动。你需要在身体上施加什么力,而不应该随着加速度计移动?有一个动画精灵,我不想随着加速度计移动。谢谢你的回复,但我是通过身体来做的;现在雪碧行动自如。现在我想增加雪碧的重量如何增加雪碧的重量