package com.me.missingwords.screens; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.BitmapFont; import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.scenes.scene2d.ui.Label; import com.badlogic.gdx.scenes.scene2d.ui.TextButton; import com.badlogic.gdx.scenes.scene2d.ui.Label.LabelStyle; import com.badlogic.gdx.scenes.scene2d.ui.TextButton.TextButtonStyle; import com.badlogic.gdx.scenes.scene2d.ui.VerticalGroup; import com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable; import com.me.missingwords.MissingWords; import com.me.missingwords.actors.Background; import com.me.missingwords.buttons.BackButton; import com.me.missingwords.listeners.BackButtonListener; import com.me.missingwords.listeners.CategorySelectionListener; import com.me.missingwords.utils.LanguageMenusStrings; /** * * Se encarga de mostrar la pantalla de selecci�n de categor�a de juego. * */ public class CategorySelectionScreen extends BaseScreen implements LanguageMenusStrings { private Background background; private Label title; private TextButton days, months, wquestions, colours, size, classroom, bodyparts, feelings, university, city, freetime; private TextButtonStyle tStyle; private TextureRegionDrawable up, down; private BitmapFont font; private BackButton backButton; private VerticalGroup buttonsBoxLeft, buttonsBoxRight; public CategorySelectionScreen(MissingWords missingWords) { super(missingWords); /* Creamos el fondo de pantalla */ background = new Background(MissingWords.myManager.get("background.png", Texture.class)); stage.addActor(background); /* Creamos el bot�n de vuelta */ backButton = new BackButton(); backButton.addListener(new BackButtonListener(missingWords)); stage.addActor(backButton); /* Creamos el t�tulo */ title = new Label("Category selection", new LabelStyle(new BitmapFont(Gdx.files.internal("fonts/title.fnt"), Gdx.files.internal("fonts/title.png"), false), Color.ORANGE)); title.setPosition((MissingWords.VIEWPORT_WIDTH - title.getMinWidth()) / 2, 400); stage.addActor(title); /* Creamos los botones de categor�as */ up = new TextureRegionDrawable(new TextureRegion(MissingWords.myManager.get("upButtonLarge.png", Texture.class))); down = new TextureRegionDrawable(new TextureRegion(MissingWords.myManager.get("downButton.png", Texture.class))); font = new BitmapFont(Gdx.files.internal("fonts/myfont.fnt"), Gdx.files.internal("fonts/myfont.png"), false); tStyle = new TextButtonStyle(up, down, null, font); days = new TextButton("Days", tStyle); days.addListener(new CategorySelectionListener("days", missingWords)); months = new TextButton("Months", tStyle); months.addListener(new CategorySelectionListener("months", missingWords)); wquestions = new TextButton("W-Questions", tStyle); wquestions.addListener(new CategorySelectionListener("wquestions", missingWords)); colours = new TextButton("Colours", tStyle); colours.addListener(new CategorySelectionListener("colours", missingWords)); size = new TextButton("Size", tStyle); size.addListener(new CategorySelectionListener("size", missingWords)); classroom = new TextButton("Classroom", tStyle); classroom.addListener(new CategorySelectionListener("classroom", missingWords)); bodyparts = new TextButton("Body-parts", tStyle); bodyparts.addListener(new CategorySelectionListener("bodyparts", missingWords)); feelings = new TextButton("Feelings", tStyle); feelings.addListener(new CategorySelectionListener("feelings", missingWords)); university = new TextButton("University", tStyle); university.addListener(new CategorySelectionListener("university", missingWords)); city = new TextButton("City", tStyle); city.addListener(new CategorySelectionListener("city", missingWords)); freetime = new TextButton("Free time", tStyle); freetime.addListener(new CategorySelectionListener("freetime", missingWords)); /* Creamos los contenedores de botones */ buttonsBoxLeft = new VerticalGroup(); buttonsBoxLeft.space(10); buttonsBoxLeft.setPosition(200, 400); /* A�adimos los botones */ buttonsBoxLeft.addActor(days); buttonsBoxLeft.addActor(months); buttonsBoxLeft.addActor(wquestions); buttonsBoxLeft.addActor(colours); buttonsBoxLeft.addActor(size); stage.addActor(buttonsBoxLeft); // A�adimos el grupo al stage buttonsBoxRight = new VerticalGroup(); buttonsBoxRight.space(10); buttonsBoxRight.setPosition(600, 400); buttonsBoxRight.addActor(classroom); buttonsBoxRight.addActor(bodyparts); buttonsBoxRight.addActor(feelings); buttonsBoxRight.addActor(university); buttonsBoxRight.addActor(city); buttonsBoxRight.addActor(freetime); stage.addActor(buttonsBoxRight); } @Override public void updateLanguageStrings() { switch (missingWords.selectedLanguage.toString()) { case "german": title.setText(categorySelection_de); days.setText(days_de); months.setText(months_de); wquestions.setText(wQuestions_de); colours.setText(colours_de); size.setText(size_de); classroom.setText(classroom_de); bodyparts.setText(bodyParts_de); feelings.setText(feelings_de); university.setText(university_de); city.setText(city_de); freetime.setText(freetime_de); break; case "english": title.setText(categorySelection_en); days.setText(days_en); months.setText(months_en); wquestions.setText(wQuestions_en); colours.setText(colours_en); size.setText(size_en); classroom.setText(classroom_en); bodyparts.setText(bodyParts_en); feelings.setText(feelings_en); university.setText(university_en); city.setText(city_en); freetime.setText(freetime_en); } } @Override public void render(float delta) { super.render(delta); title.setPosition((MissingWords.VIEWPORT_WIDTH - title.getMinWidth()) / 2, 400); stage.act(); stage.draw(); } @Override public void show() { super.show(); updateLanguageStrings(); } @Override public void resize(int width, int height) { super.resize(width, height); } @Override public void dispose() { super.dispose(); font.dispose(); stage.dispose(); } }