My main question is, what is your most efficient way of switching screens? I’m asking because I figured out a way however it feels hacky.
Right now I have a main class that extends Game, and two other classes that implement Screen, Screen1 and Screen2. My main class uses setScreen() in its create() method to change to Screen1. Screen1 has a Timer object in its show() method, and after a certain amount of time it triggers a boolean to true. That boolean is used in my main classes render() method to setScreen() over to Screen2.
class Main extends Game {
public static boolean splashScreenTimer = false;
@Override
public void create () {
setScreen(new SplashScreen(this));
}
@Override
public void render () {
super.render();
if(splashScreenTimer) {
splashScreenTimer = false;
setScreen(new MainMenu(this));
}
}
(...)
}
public class SplashScreen implements Screen {
@Override
public void show() {
(...things happen...)
Timer.schedule(new Timer.Task(){
@Override
public void run() {
Main.splashScreenTimer = true;
dispose();
}
}
, FADE_TIME
);
}
}
My code gets the job done but it just feels like there is a more optimal way of handling switching between different screens.