Показать разные сцены для разных уровней. AndEngine - PullRequest
1 голос
/ 06 февраля 2012

Я использую AndEngine для игры 2d.Хочу загрузить разные виды деятельности или лучше разные сцены для разных уровней и для главного меню.Как этого добиться?..Где я могу найти пример?

1 Ответ

4 голосов
/ 07 февраля 2012

Я бы порекомендовал вам использовать сцены вместо действий, чтобы избежать черных экранов между переключениями действий. Создайте свой собственный менеджер сцен и используйте его для смены экранов. Базовый пример:

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(); 
...