0

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

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;
        }
    }
}
4

1 回答 1

0

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

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

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

于 2012-10-12T05:21:05.050 回答