2012-12-04 8 views
5

私はcocos2dxを使用して小さなゲームを作っています。私のゲームでは、戻るボタンを処理するために次の機能を提供しています。私は私のlogcatで次の警告Androidの戻るボタンが機能しません

の読み込みエラーkeycharmapファイル「/システムの/ usr/keychars/QTOUCH、タッチスクリーンkeycharmapファイルを開くことができません取得ボタンを背面押しに

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) 
{ 
    return super.onKeyDown(keyCode, event); 
} 

@Override 
public void onDestroy() 
{ 
    android.os.Process.killProcess(android.os.Process.myPid()); 
    super.onDestroy(); 
} 

.kcm.bin '。 hw.keyboards.65538.devname = 'qtouch-touchscreen'

呼び出しはonKeyDownまたはonDestroy関数には達しません。

なぜこの警告が発生し、なぜ私はアンドロイドの戻るボタンを処理できないのか教えてください。

機能は私のJavaのAndroidプロジェクトで正常に動作しますが、私のcocos2d-Xプロジェクトに

答えて

7

それがファイルにここで扱われてさmyActivityがcocos2dActicity

 case KeyEvent.KEYCODE_BACK: 
        AlertDialog ad = new AlertDialog.Builder(myActivity) 
        .setTitle("EXIT?") 
        .setMessage("Do you really want to exit?") 
        .setPositiveButton("YES", new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog, int which) { 
          ((Cocos2dxActivity)myActivity).finish(); 
         } 
        }) 
        .setNegativeButton("NO", new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog, int which) { 

         } 
        }).create(); 
        ad.show(); 
      return true; 
     case KeyEvent.KEYCODE_MENU: 
+0

ありがとうございますこれは私が探していたものです – glo

+0

終了しません、私は再びそれを実行すると、どこからだった。 – McDermott

+0

ここのアクティビティにどの程度正確にアクセスできますか? –

1

あなたがタッチを有効にしているではありませんか?そうでなければ、それを可能にしてください、そして、あなたの問題を整理してくれることを願ってください。

あなたのゲーム画面のボタンとします。

+0

ありません私は、Android携帯電話上の戻るボタンを意味しました。電話機のホームボタンは完全に機能しますが、戻るボタンは機能しません。 – glo

2

戻るボタンの操作を処理するには、この2つの方法ではなく、アクティビティのonBackPressed()メソッドを再定義する必要があります。

+0

私もこれを試しましたが、呼び出しは 'onBackPressed()'メソッドにも到達していません。 – glo

+0

ココス・カフルート・バックプレス。このメッセージをチェックしてください、これはあなたが探しているものかもしれませんhttp://www.cocos2d-x.org/boards/6/topics/5041?r=5059#message-5059 – Evos

+0

これはCCLayerを継承している場合にのみ役立ちます私はそうではありません。この危機を解決する他の方法はありますか? – glo

2

ちょうどあなたのアプリは、onKeyDownメソッドのオーバーライドメソッドの実装

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    // TODO Auto-generated method stub 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     // Here to implements for your code. 
     Log.d(TAG, "KEYCODE_BACK"); 
    } 
    return super.onKeyDown(keyCode, event); 
} 
+0

はい、私はonKeyDown関数をオーバーライドしていますが、JavaのAndroidプロジェクトで正常に動作します。私のcocos2d-xプロジェクトではうまくいきません。 – glo

1
で以下に Cocos2dxGLSurfaceView.java

変更して、

次はCocos2d-xバージョン3のアップデートです

これは、単に答え(と作品)されたhere

だけでなく、わずかに小さく、完全ユーチューブhere

関連する問題