2012-02-05 54 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

如果使用第三方應用程序,該怎麼辦?您不能在那裏使用場景管理器.Endine活動已暫停,恢復時會再次熄滅。 – 2012-05-10 09:34:54

+0

對不起,但我無法理解你的評論。暫停後黑屏 - 這是AndEngine的問題,因爲它會重新加載資源...... – 2012-05-10 11:32:25

+0

我在說我們使用場景管理器來避免暫停時出現黑屏。但是如果我們在遊戲或遊戲中使用第三方應用程序呢?我們無法處理他們自己?他們的解決方案是否可以避免黑屏? – 2012-05-11 05:49:32