package com.mony.crazydriver.screens; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Preferences; import com.badlogic.gdx.Screen; import com.badlogic.gdx.graphics.GL10; import com.badlogic.gdx.scenes.scene2d.InputEvent; import com.badlogic.gdx.scenes.scene2d.InputListener; import com.badlogic.gdx.scenes.scene2d.Stage; import com.badlogic.gdx.scenes.scene2d.ui.CheckBox; import com.badlogic.gdx.scenes.scene2d.ui.Label; import com.badlogic.gdx.scenes.scene2d.ui.Table; import com.badlogic.gdx.scenes.scene2d.ui.TextButton; import com.mony.crazydriver.CrazyDriver; import com.mony.crazydriver.util.Constants; /** * Pantalla de configuración del juego * @author Santiago Faci * @version 1.0 * */ public class ConfigurationScreen implements Screen { CrazyDriver game; Stage stage; // Almacena las preferencias (en %UserProfile%/.prefs/PreferencesName) Preferences prefs; GameScreen gameScreen; public ConfigurationScreen(CrazyDriver game,GameScreen gameScreen) { this.game = game; this.gameScreen=gameScreen; } private void loadScreen() { stage = new Stage(); Table table = new Table(); table.setPosition(Constants.SCREEN_WIDTH / 2.5f, Constants.SCREEN_HEIGHT / 1.5f); table.setFillParent(true); table.setHeight(500); stage.addActor(table); Label label = new Label("Configurar CrazyDriver", game.getSkin()); table.addActor(label); final CheckBox checkSound = new CheckBox(" Sonido", game.getSkin()); checkSound.setChecked(prefs.getBoolean("sound")); checkSound.setPosition(label.getOriginX(), label.getOriginY() - 40); checkSound.addListener(new InputListener() { public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) { return true; } public void touchUp(InputEvent event, float x, float y, int pointer, int button) { prefs.putBoolean("sound", checkSound.isChecked()); } }); table.addActor(checkSound); TextButton buttonMainMenu = new TextButton("Volver", game.getSkin()); buttonMainMenu.setPosition(label.getOriginX(), label.getOriginY() - 220); buttonMainMenu.setWidth(200); buttonMainMenu.setHeight(40); buttonMainMenu.addListener(new InputListener() { public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) { return true; } public void touchUp(InputEvent event, float x, float y, int pointer, int button) { prefs.flush(); dispose(); game.setScreen(new InGameMenuScreen(game,gameScreen)); } }); table.addActor(buttonMainMenu); Gdx.input.setInputProcessor(stage); } /** * Carga las preferencias del juego */ private void loadPreferences() { prefs = Gdx.app.getPreferences(Constants.APP); // Coloca los valores por defecto (para la primera ejecución) if (!prefs.contains("sound")) prefs.putBoolean("sound", true); } @Override public void show() { loadPreferences(); loadScreen(); } @Override public void render(float dt) { Gdx.gl.glClearColor(0, 0, 0.2f, 1); Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT); stage.act(dt); stage.draw(); } @Override public void dispose() { stage.dispose(); } @Override public void hide() { } @Override public void pause() { } @Override public void resize(int arg0, int arg1) { } @Override public void resume() { } }