2012-02-19 9 views
2

今日、私はxperia mini proにゲームをロードしようとしましたが、ハードウェアボタンを押すたびにonKeyDownコールバックを期待どおりに受け取りましたが、瞬時に同じキーでonKeyUpを取得し、キー、コールバックメソッドは呼び出されません。キーのリリースでのAndroidキーボードの問題

入力コードは次のようになります。

public final boolean buttons(int keyCode, KeyEvent event, boolean state) { 
    boolean handled = true; 
    switch (keyCode) { 
     case KeyEvent.KEYCODE_DPAD_UP: 
     case KeyEvent.KEYCODE_W: 
      this.input.KEY_UP = state; 
      Logger.print("UP: " + state); 
     break; 
     case KeyEvent.KEYCODE_DPAD_RIGHT: 
      Logger.print("RIGHT: " + state); 
      this.input.KEY_RIGHT = state; 
     break; 
     case KeyEvent.KEYCODE_DPAD_DOWN: 
     case KeyEvent.KEYCODE_S: 
      this.input.KEY_DOWN = state; 
      Logger.print("DOWN: " + state); 
     break; 
     case KeyEvent.KEYCODE_DPAD_LEFT: 
      this.input.KEY_LEFT = state; 
     break; 
     case KEYCODE_BUTTON_SQUARE: 
     case KeyEvent.KEYCODE_L: 
      this.input.KEY_FORWARD = state; 
     break; 
     case KEYCODE_BUTTON_TRIANGLE: 
     case KeyEvent.KEYCODE_K: 
      this.input.KEY_BACKWARD = state; 
     break; 
     case KeyEvent.KEYCODE_DPAD_CENTER: 
      this.input.KEY_ACTION = state; 
     break; 
     default: 
      handled = false; 
     break; 
    } 
    return handled; 
} 

は、この問題を解決する方法はありますか?

編集:申し訳ありませんonKeyPressedreleasedです。実際に意味onKeyDownonKeyUp

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    return features.inputManager.inputButtons.press(keyCode, event) ? 
      true : super.onKeyDown(keyCode, event); 
} 

@Override 
public boolean onKeyUp(int keyCode, KeyEvent event) { 
    return features.inputManager.inputButtons.release(keyCode, event) ? 
      true : super.onKeyUp(keyCode, event); 
} 

プレスリリースおよび方法は、真または偽のいずれかのパラメータでボタンメソッドを呼び出します。

答えて

0

使用してみてください:

@Override 
public boolean onKeyUp(inr keyCode,KeyEvent event) { 
//your stuffs 
} 
関連する問題