I would recommend that you use scenes instead of actions to avoid black screens between switching actions. Create your own scene manager and use it to change screens. Basic example:
public class SceneManager {
private static Game game;
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;
}
}
And in your main Game.java class, you must first initialize your scene manager class and get a local instance. After that, feel free to use it according to your game logic:
private SceneManager sm;
SceneManager.init(this);
sm = SceneManager.getManager();
sm.setMainMenuScreen();
...
sm.setGameScreen();
source
share