私は古典的なモバイル ゲームのパラダイムを実行する方法を実験しています: レベルのセレクターの後にゲーム画面が続きます。 それを行うにはたくさんの方法があることを完全に理解していますが、この特定の方法を(学習目的で)試したときに何がうまくいかないのか疑問に思っていました:
自分の GLSurfaceView 子への参照を保持するアクティビティがあります。アクティビティの開始時に、デフォルトの「レベル」がロードされ、完全に再生されます。Render スレッドが開始されていることがわかります。
OptionsMenu 項目を実装しました。これは、アクティブ化後に GridView を適切なアダプターで膨らませ、ユーザーがレベルを選択できるようにします。setContentView を使用して、この膨張したレイアウトをアクティビティに設定します。これはGLThreadが死ぬときです。
今、私はそのメニューのOnClickも実装して、クリック後にゲームエンジンにレベルをロードし(正常に動作します)、保存された(1.で)参照でsetContentViewを使用してGLSurfaceViewを戻します。
そして、それが私が空白の画面を取得する方法です。すべて正常に動作し、メニューは引き続き動作します。レベル セレクターに戻ることはできますが、デバッガーではレンダー スレッドが存在しないことがわかります。
誰かがここで何がうまくいかないのか説明してもらえますか? この OpenGL 組み込みについてはまったくわかりません。