3

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

2 回答 2

5

只需乘以SensorManager.GRAVITY_EARTH-1。

于 2013-02-09T03:37:47.730 回答
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); }

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

于 2014-02-18T08:01:42.207 回答