Android 显示不同级别的不同场景。安第涅
我在用AndEngine做2d游戏。想为不同的级别和主菜单加载不同的活动或更好的不同场景。如何做到这一点。。在哪里可以找到示例?我建议您使用场景而不是活动,以避免在切换活动之间出现黑屏。创建自己的场景管理器,并将其用于更改屏幕。 基本示例:Android 显示不同级别的不同场景。安第涅,android,andengine,Android,Andengine,我在用AndEngine做2d游戏。想为不同的级别和主菜单加载不同的活动或更好的不同场景。如何做到这一点。。在哪里可以找到示例?我建议您使用场景而不是活动,以避免在切换活动之间出现黑屏。创建自己的场景管理器,并将其用于更改屏幕。 基本示例: public class SceneManager { private static Game game; // your main activity private static SceneManager sm; private
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的问题,因为它再次重新加载资源…我是说我们使用场景管理器来避免暂停时出现黑屏。但如果我们在游戏中使用第三方应用呢。我们不能自己处理它们?他们有没有办法避免黑屏出现?好的。我明白了。我认为不实施任何破解是不可能的,但我可能错了。使用上述方法,设备的堆内存会不断增加,因为每次我们都在创建场景的新对象。当我们长时间使用某个活动时,它就会溢出。因此,请提供任何解决方案。