我正在尝试使用动态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));
答案 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);
}
这将使您的物理世界处于真实的重力体验中,您将获得受传感器数据影响的物体