我正在制作一款带加速度计功能的游戏,因此每次我将设备向左转,船都会向左倾斜,反之亦然 问题是船只一直向左移动 这是我的代码
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;
}
}
}
答案 0 :(得分:0)
您不应使用任何增量。只需检查x> 0,然后将其移至左侧,否则移至右侧
deltaX在您的代码中计算得不好。它不认为xBefore可以小于零并且当前x大于零(或其他方式)。应使用绝对值计算Delta。
但是我想你在这里真的不需要任何增量。只需使用x。