0

AndEngine を使用してゲームを開発していますが、この問題は AndEngine とは関係ないと考えています。

次の場合に起動する可能性のあるダイアログが 2 つあります。

  1. ユーザーが間違ったエリアにタッチダウンする、または
  2. ユーザーが間違った場所から持ち上げます。

残念ながら、ユーザーが間違った領域に着地した場合、持ち上げたときにエラー 2 (間違った領域から持ち上げた) も満たされます。

一言で言えば私のコードは次のとおりです。

public boolean onSceneTouchEvent(Scene pScene, TouchEvent pSceneTouchEvent) {
   float y = pSceneTouchEvent.getY();
   int dialog_count = 0;

   if (pSceneTouchEvent.isActionDown() && y < 1000) {
     activity.runOnUiThread(new Runnable() {
       @Override
       public void run() {
         AlertDialog Code
         ..............
     }
    }
    dialog_count ++;
    Log.d("Dialog Count", "Count is " + dialog_count);
   } else if (dialog_count < 1 && pSceneTouchEvent.isActionUp() && y > 105) {
    Log.d("Dialog Count", "Count is still " + dialog_count);
    activity.runOnUiThread(new Runnable() {
       @Override
       public void run() {
       Second AlertDialog Code
       .................
   }
  }
 }
  return false;
 }

今、私の最初のログdialog_countは値 1 を示していますdialog_count。最初のダイアログの上に 2 番目のダイアログが表示されます。

何か案は?

4

3 に答える 3

3

コードが初期化されます

int dialog_count = 0;

実行するたびに。

前回見た値を保持するdialog_countには、クラスでインスタンス変数を作成します。

「ダウン」と「アップ」の 2 つのイベントが表示されることに注意してください。

于 2013-08-14T04:55:13.617 に答える