2012-10-12 49 views
0

我正在做与加速计功能,游戏移动,所以,每次我想谈谈我的设备左边,船将银行离开,反之亦然 问题该船保持运动本身留下 这里是我的代码加速度计的Android游戏不能以正确的方式

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

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

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

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