satrix
1
hello,
I am having some trouble trying to switch from my title menu state to my in game state.
It just freezes on the titlestate when I try switching.
here is the code I have that switches game states:
titleState.setActive(false);
playState = new PlayState("playState", name);
GameStateManager.getInstance().attachChild(playState);
playState.setActive(true);
Thanks for your help in advance
satrix
2
nevermind about that, I switched to using standardgame, but now the titlestate will not even start! It just freezes…
Here is my code:
public class Game {
private static final Level LOGGER_LEVEL = Level.WARNING;
private static StandardGame game;
// the gamestates
private static TitleState titleState;
private static PlayState playState;
// end gamestates
public Game() {
//Logger.getLogger("").setLevel(LOGGER_LEVEL);
game = new StandardGame("StandardGame");
game.setConfigShowMode(ConfigShowMode.NeverShow);
//
init();
}
public static void switchToPlayState(String name) {
titleState.setActive(false);
playState = new PlayState(name, game.getCamera());
GameStateManager.getInstance().attachChild(playState);
playState.setActive(true);
}
private void init() {
GameSettings settings = game.getSettings();
settings.setRenderer("LWJGL");
settings.setHeight((int) Toolkit
.getDefaultToolkit().getScreenSize().getHeight());
settings.setWidth((int) Toolkit
.getDefaultToolkit().getScreenSize().getWidth());
settings.setFullscreen(true);
settings.setSamples(0);
settings.setDepth(16);
settings.setFrequency(60);
game.start();
game.getDisplay().setTitle("Xenion");
titleState = new TitleState("TitleState");
GameStateManager.getInstance().attachChild(titleState);
titleState.setActive(true);
}
public static void quit() {
game.shutdown();
System.exit(0);
}
}
satrix
3
ok, the title state shows when i call game.start() as soon as I make the standard game,
but still if I try to switch to the play state it freezes!
Also, how can I modify the gamesettings for standardgame? (I want it to be the same settings every time)
I call getSettings() but I can do that only after I make the standardgame. When I try modifying it, it still keeps the original settings.
here is the new code:
public class Game {
private static final Level LOGGER_LEVEL = Level.WARNING;
private static StandardGame game;
// the gamestates
private static TitleState titleState;
private static PlayState playState;
// end gamestates
public Game() {
//Logger.getLogger("").setLevel(LOGGER_LEVEL);
game = new StandardGame("StandardGame");
game.setConfigShowMode(ConfigShowMode.NeverShow);
game.start();
titleState = new TitleState("TitleState");
GameStateManager.getInstance().attachChild(titleState);
titleState.setActive(true);
}
public static void switchToPlayState(String name) { //freezes!
titleState.setActive(false);
playState = new PlayState(name, game.getCamera());
GameStateManager.getInstance().attachChild(playState);
playState.setActive(true);
}
public static void quit() {
game.shutdown();
System.exit(0);
}
}
Have you tried debugging your PlayState?
How does your PlayState class look?
Why are the methods static?
satrix
5
the playstate works if I run it by itself but if I try switching from the title to play state it just freezes.
the methods are static so I can access them in my game states without having to pass an instance of the class to them.
satrix
6
okay, the switching works if I load both game states at the beginning.
I guess I'm fine with that.
public class Game {
private static final Level LOGGER_LEVEL = Level.WARNING;
private static StandardGame game;
// the gamestates
private static TitleState titleState;
private static PlayState playState;
// end gamestates
public Game() {
Logger.getLogger("").setLevel(LOGGER_LEVEL);
game = new StandardGame("Xenion");
game.setConfigShowMode(ConfigShowMode.NeverShow);
GameSettings settings = game.getSettings();
settings.setRenderer("LWJGL");
settings.setHeight((int) Toolkit
.getDefaultToolkit().getScreenSize().getHeight());
settings.setWidth((int) Toolkit
.getDefaultToolkit().getScreenSize().getWidth());
settings.setFullscreen(true);
settings.setSamples(0);
settings.setDepth(16);
settings.setFrequency(60);
game.start();
playState = new PlayState("PlayState", game.getCamera());
GameStateManager.getInstance().attachChild(playState);
playState.setActive(false);
titleState = new TitleState("TitleState");
GameStateManager.getInstance().attachChild(titleState);
titleState.setActive(true);
}
public static void switchToPlayState(String name) {
titleState.setActive(false);
playState.setActive(true);
playState.setInitPlayerLoc(GameProps.getPlayerLoc());
playState.setUsername(name);
}
public static void quit() {
game.shutdown();
System.exit(0);
}
}