package it.marteEngine.game.starcleaner; import it.marteEngine.ResourceManager; import java.io.IOException; import it.marteEngine.SFX; import org.newdawn.slick.AppGameContainer; import org.newdawn.slick.GameContainer; import org.newdawn.slick.Input; import org.newdawn.slick.SlickException; import org.newdawn.slick.state.StateBasedGame; import org.newdawn.slick.util.Log; public class StarCleaner extends StateBasedGame { public static final int WIDTH = 640; public static final int HEIGHT = 480; public static final int TILESIZE = 40; // static finals for the game state ids, defined here to avoid duplicate // gamestate definitions public static final int TITLE_STATE = 1; public static final int INGAME_STATE = 2; public static final int NEXTLEVEL_STATE = 3; public static final int GAMEOVER_STATE = 4; public static final int CREDITS_STATE = 5; public static final int INSTRUCTIONS_STATE = 6; public static final int OPTIONS_STATE = 7; /** volume for SFX and music */ public static float musicVolume = 1.0f; public static float sfxVolume = 1.0f; public static boolean wizardMode = false; public static boolean ressourcesInited = false; private AppGameContainer container; public StarCleaner() { super("Star Cleaner"); Globals.game = this; } @Override public void initStatesList(GameContainer arg0) throws SlickException { if (container instanceof AppGameContainer) { this.container = (AppGameContainer) container; } addState(new TitleState(TITLE_STATE)); // addState(new CreditsState()); // addState(new InstructionsState()); addState(new IngameState(INGAME_STATE)); // addState(new NextLevelState()); // addState(new GameOverState()); // addState(new OptionsState()); applyGameOptions(); } /** * @see org.newdawn.slick.state.StateBasedGame#keyPressed(int, char) */ public void keyPressed(int key, char c) { super.keyPressed(key, c); if (key == Input.KEY_F2) { if (container != null) { try { container.setFullscreen(!container.isFullscreen()); if (container.isFullscreen()) container.setMouseGrabbed(true); } catch (SlickException e) { Log.error(e); } } } } private void applyGameOptions() { SFX.setMusicVolume(1.0f); SFX.setSoundVolume(1.0f); } public static void initRessources() throws SlickException { if (ressourcesInited) return; try { ResourceManager.loadResources("data/starcleaner/res/resources.xml"); } catch (IOException e) { Log.error("failed to load resource file 'data/starcleaner/res/resources.xml': " + e.getMessage()); throw new SlickException("Resource loading failed!"); } ressourcesInited = true; } /** * @param args */ public static void main(String[] args) { if (args.length == 1 && args[0].equals("wizard")) wizardMode = true; // ME.debugEnabled = true; try { // Log.setVerbose(false); AppGameContainer container = new AppGameContainer(new StarCleaner()); container.setDisplayMode(WIDTH, HEIGHT, false); // container.setShowFPS(false); // switch off mouse cursor container.start(); } catch (SlickException e) { e.printStackTrace(); } } }