2012-10-12 93 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。