Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 显示不同级别的不同场景。安第涅_Android_Andengine - Fatal编程技术网

Android 显示不同级别的不同场景。安第涅

Android 显示不同级别的不同场景。安第涅,android,andengine,Android,Andengine,我在用AndEngine做2d游戏。想为不同的级别和主菜单加载不同的活动或更好的不同场景。如何做到这一点。。在哪里可以找到示例?我建议您使用场景而不是活动,以避免在切换活动之间出现黑屏。创建自己的场景管理器,并将其用于更改屏幕。 基本示例: public class SceneManager { private static Game game; // your main activity private static SceneManager sm; private

我在用AndEngine做2d游戏。想为不同的级别和主菜单加载不同的活动或更好的不同场景。如何做到这一点。。在哪里可以找到示例?

我建议您使用场景而不是活动,以避免在切换活动之间出现黑屏。创建自己的场景管理器,并将其用于更改屏幕。 基本示例:

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

我建议您使用场景而不是活动,以避免在切换活动之间出现黑屏。创建自己的场景管理器,并将其用于更改屏幕。 基本示例:

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

如果使用第三方应用程序怎么办?您无法在那里使用场景管理器,并且发动机活动已暂停,恢复时再次断电。很抱歉,我无法理解您的评论。暂停后出现黑屏-这是AndEngine的问题,因为它再次重新加载资源…我是说我们使用场景管理器来避免暂停时出现黑屏。但如果我们在游戏中使用第三方应用呢。我们不能自己处理它们?他们有没有办法避免黑屏出现?好的。我明白了。我认为不实施任何破解是不可能的,但我可能错了。使用上述方法,设备的堆内存会不断增加,因为每次我们都在创建场景的新对象。当我们长时间使用某个活动时,它就会溢出。因此,请提供任何解决方案。如果使用第三方应用程序会怎么样?您无法在那里使用场景管理器,并且发动机活动已暂停,恢复时再次断电。很抱歉,我无法理解您的评论。暂停后出现黑屏-这是AndEngine的问题,因为它再次重新加载资源…我是说我们使用场景管理器来避免暂停时出现黑屏。但如果我们在游戏中使用第三方应用呢。我们不能自己处理它们?他们有没有办法避免黑屏出现?好的。我明白了。我认为不实施任何破解是不可能的,但我可能错了。使用上述方法,设备的堆内存会不断增加,因为每次我们都在创建场景的新对象。当我们长时间使用某个活动时,它就会溢出。因此,请提供任何解决方案。