package se.rhel.screen.scene; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.GL10; import com.badlogic.gdx.scenes.scene2d.Actor; import com.badlogic.gdx.scenes.scene2d.Stage; import com.badlogic.gdx.scenes.scene2d.ui.Table; import com.badlogic.gdx.scenes.scene2d.ui.TextButton; import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener; import se.rhel.CodeName; import se.rhel.screen.AbstactController; import se.rhel.screen.GameController; import se.rhel.network.controller.LobbyScreen; import se.rhel.view.sfx.SoundManager; /** * Group: Logic * * Created by Emil on 2014-02-18. * assigned to libgdx-gradle-template in se.rhel.screen.scene */ public class MainMenu extends AbstactController { private Stage mStage; private Table mTable; private CodeName mGame; public MainMenu(CodeName game) { super(game); SoundManager.INSTANCE.playMenuMusic(); mStage = new Stage(); mGame = game; } private void initStage() { mTable.clear(); final TextButton optButton = UIComponents.getDefaultTextButton("Options", 200f, 20f); // button.setPosition(Gdx.graphics.getWidth() /2 - 100f, Gdx.graphics.getHeight()/2 - 10f); final TextButton startButton = UIComponents.getDefaultTextButton("Start", 200f, 20f); final TextButton hostButton = UIComponents.getDefaultTextButton("Host game", 200f, 20f); final TextButton joinButton = UIComponents.getDefaultTextButton("Join game", 200f, 20f); optButton.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { // mGame.setScreenWithTransition(new OptionsMenu(mGame)); Gdx.app.log("Button", "Opt"); mGame.setScreen(new OptionsMenu(mGame)); } }); startButton.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { Gdx.app.log("Button", "Game"); // mGame.setScreenWithTransition(new NetworkGameScreen(mGame)); mGame.setScreen(new GameController(mGame)); } }); joinButton.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { mGame.setScreen(new LobbyScreen(mGame, false)); } }); hostButton.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { mGame.setScreen(new LobbyScreen(mGame, true)); } }); mTable.add(optButton); mTable.row().padTop(10); mTable.add(startButton); mTable.row().padTop(10); mTable.add(hostButton); mTable.row().padTop(10); mTable.add(joinButton); mStage.addActor(mTable); } @Override public void show() { mTable = new Table(); mTable.setFillParent(true); Gdx.input.setCursorCatched(false); Gdx.input.setInputProcessor(mStage); Gdx.input.setCatchBackKey(true); } @Override public void update(float delta) { mStage.act(delta); } @Override public void draw(float delta) { Gdx.gl.glClearColor(1, 1, 1, 1); Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT); mStage.draw(); Table.drawDebug(mStage); } @Override public void resize(int width, int height) { super.resize(width, height); mStage.setViewport(width, height, true); initStage(); } @Override public void hide() { super.hide(); this.dispose(); } @Override public void dispose() { super.dispose(); mStage.dispose(); } }