为什么物理体在anndngine gles2锚中心动态壁纸中自动向上移动

时间:2013-02-08 19:03:00

标签: android andengine game-physics live-wallpaper

我正在尝试使用动态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));

2 个答案:

答案 0 :(得分:5)

SensorManager.GRAVITY_EARTH乘以-1。

答案 1 :(得分: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); }

这将使您的物理世界处于真实的重力体验中,您将获得受传感器数据影响的物体