1

したがって、libgdx Android プロジェクトには、Android アクティビティを含むフォルダーと、libgdx プロジェクトのソース コードを含むフォルダーがあります。

使用する Android アクティビティから「ゲーム」を開始するにはinitialize(new MyGdxGame(),cfg);

ゲーム内のlibgdxクラスからメインメニューのようなAndroidアクティビティに戻る方法を知る必要があります...

Activity からクラスを拡張して を取得しようとしましたcontextApplicationが、プログラムが libgdx クラス内の Android クラスを認識しないため、2 番目の引数を埋めることができません...

4

4 に答える 4

1

libGDX プロジェクトで Android 固有のコードを使用する標準的な方法は、libGDX コア プロジェクト (例: interface PlatformStuff) でプラットフォームに依存しないインターフェイスを作成し、次に各プラットフォーム固有のバックエンド (例: デスクトップまたは Android) でそのインターフェイスをプラットフォーム固有のオブジェクト (so class AndroidPlatformStuff implements PlatformStuff)。インターフェースのプラットフォーム固有の実装を、構築時に汎用コードに渡すことができます (例: new MyGdxGame(new AndroidPlatformStuff()).

アクティビティとコンテキストを変更する Android コードを呼び出すには、もう少し作業が必要になる場合があります (libGDX インフラストラクチャと少し対話するため) が、実行可能である必要があります。広告のサポートを統合するためのチュートリアルを使用して、基本的な考え方を理解できるはずです。http://code.google.com/p/libgdx/wiki/AdMobInLibgdxまたはhttp://code.google.com/p/libgdx/wiki/ApplicationPlatformSpecificをご覧ください。

于 2013-01-03T18:19:29.557 に答える
0

広告プラットフォーム用の libGDX ドキュメントは、まさに必要なものを使用しています。libGDX コアにインターフェースを作成し、コア部分から呼び出すことができる Android ランチャーにハンドラーを実装します。

ここを参照してください: https://github.com/libgdx/libgdx/wiki/Admob-in-libgdx

基本的に、すべての広告をスキップします。「コントロール」まで下にスクロールし、次の部分を実装するだけです。

  • AndroidLauncher 内に新しい Handler を登録します。これは、ハンドラーが後で正しい Android スレッドでインターフェイスの実装された関数を処理できるようにするために必要です... (「HelloWorldAndroid」を参照)
  • コア プロジェクトにインターフェイスを作成します(IActivityRequestHandler など)。
  • AndroidLauncher に関数を実装させ、ハンドラーを使用して Android スレッド内で実際の関数を実行します。

最後に、libGDX コア コードへの参照を渡す必要があります。個人的には、次のようにコアプロジェクト内にシングルトンクラスを実装して使用しました。

class SingletonData{
  private SingletonData(){
  }
  private static SingletonData instance;
  public static SingletonData getInstance(){
    if(instance==null){
      instance = new SingletonData(); // can only be assessed here. no other class can generate a second instance
    }
    return instance;
  } 

  private IActivityRequestHandler handler;

  public void setHandler(IActivityRequestHandler handler){
    this.handler=handler;
  }

  public IActivityRequestHandler getHandler(){
    return this.handler;
  }
}

AndroidLauncher (つまり、HelloWorldAndroid) では、作成の最後に次のように呼び出して登録します。

SingletonData.getInstance().setHandler(this);

これで、好きな Core-Class 内で次のように使用できます。

SingletonData.getInstance().getHandler().showAds(true); // showAds or whatever your interface handler implements

PS: ゲームの開始後に必ず getHandler() を呼び出して、null 参照を取得しないようにしてください。

于 2019-05-06T21:17:48.980 に答える