Android游戏的加速度计无法以正确的方式移动

时间:2012-10-12 04:44:32

标签: android opengl-es accelerometer

我正在制作一款带加速度计功能的游戏,因此每次我将设备向左转,船都会向左倾斜,反之亦然 问题是船只一直向左移动 这是我的代码

public void onSensorChanged(SensorEvent event){
    if(event.sensor.getType()==Sensor.TYPE_ACCELEROMETER){
        float x = event.values[0];

        deltaX = xBefore-x;
        xBefore = x;
        if(deltaX>0){//move right
            SFEngine.playerFlightAction = SFEngine.PLAYER_LEFT_BANK_1;
        }else{//move left
            SFEngine.playerFlightAction =SFEngine.PLAYER_RIGHT_BANK_1;
        }
    }
}

1 个答案:

答案 0 :(得分:0)

您不应使用任何增量。只需检查x> 0,然后将其移至左侧,否则移至右侧

deltaX在您的代码中计算得不好。它不认为xBefore可以小于零并且当前x大于零(或其他方式)。应使用绝对值计算Delta。

但是我想你在这里真的不需要任何增量。只需使用x。