2012-02-05 8 views

答えて

4

切り替えアクティビティ間の黒い画面を避けるために、アクティビティの代わりにシーンを使用することをお勧めします。独自のシーンマネージャを作成し、それをスクリーンの変更に使用します。 基本例:

public class SceneManager { 
    private static Game game; // your main activity 
    private static SceneManager sm; 

    private Scene mScene; 

    private SceneManager(){ 
    } 

    public static void init(Game pGame){ 
      SceneManager.game = pGame; 
    } 

    public static SceneManager getManager(){ 
      if(game == null) throw new IllegalStateException("You must first initialize scenemanager class"); 
      if(sm == null) return sm = new SceneManager(); 

      return sm; 
    } 

    public void setMainMenuScreen(){ 
      mScene = new MainMenuScene(); 
      game.getEngine().setScene(mScene); 
    } 

    public void setGameScreen(){ 
      mScene = new GameScene(); 
      game.getEngine().setScene(mScene); 
    } 

    public Scene getCurrScene(){ 
      return mScene; 
    } 
} 

そして、あなたのメインクラスのGame.javaに、まず、あなたのシーンマネージャクラスを初期化し、ローカルインスタンスを取得する必要があります。その後、あなたのゲームロジックに応じて自由に使用してください:

private SceneManager sm; 
SceneManager.init(this); 
sm = SceneManager.getManager(); 
sm.setMainMenuScreen(); 

... 

sm.setGameScreen(); 
+0

サードパーティのアプリケーションを使用する場合はどうなりますか?シーンマネージャを使用することはできません。そこでは、AndEngineアクティビティは一時停止され、再開すると再び黒くなります。 –

+0

申し訳ありませんが、私はあなたのコメントを理解できません。中断した後の黒い画面 - AndEngineの問題です。なぜなら、リソースが再びリロードされるからです... –

+0

私はシーンマネージャを使用して、一時停止時に黒い画面を避けると言っていました。しかし、私たちがサードパーティ製のアプリをゲームやゲームで使用している場合はどうでしょうか?私たちは私たち自身を扱うことができませんか?そこに黒いスクリーンを避ける彼らの任意のソリューションですか? –