我是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将根据加速度计移动,但身体不会移动。
答案 0 :(得分:2)
您应该创建两个不同的实体并将其附加到您的精灵。 您想要移动的Body应该设置为BodyType.DynamicBody,另一个应该是BodyType.StaticBody。
要查看加速度计和身体示例,请检查以下内容: http://code.google.com/p/andengineexamples/source/browse/src/org/anddev/andengine/examples/PhysicsExample.java