List of usage examples for com.badlogic.gdx.scenes.scene2d.ui Skin addRegions
public void addRegions(TextureAtlas atlas)
From source file:com.jupiter.europa.screen.MainMenuScreen.java
License:Open Source License
private static void buildMainMenuSkin() { Skin skin = new Skin(); // Fonts/*from w w w .j av a 2s .c o m*/ skin.add(BUTTON_FONT_KEY, EuropaGame.game.getAssetManager() .get(FileLocations.FONTS_DIRECTORY.resolve(BUTTON_FONT).toString())); skin.add(TITLE_FANCY_FONT_KEY, EuropaGame.game.getAssetManager() .get(FileLocations.FONTS_DIRECTORY.resolve(TITLE_FANCY_FONT).toString())); skin.add(TITLE_FONT_KEY, EuropaGame.game.getAssetManager() .get(FileLocations.FONTS_DIRECTORY.resolve(TITLE_FONT).toString())); skin.add(LIST_FONT_KEY, EuropaGame.game.getAssetManager().get(FileLocations.FONTS_DIRECTORY.resolve(LIST_FONT).toString())); skin.add(TEXT_FIELD_FONT_KEY, EuropaGame.game.getAssetManager() .get(FileLocations.FONTS_DIRECTORY.resolve(TEXT_FIELD_FONT).toString())); skin.add(INFO_LABEL_FONT_KEY, EuropaGame.game.getAssetManager() .get(FileLocations.FONTS_DIRECTORY.resolve(INFO_LABEL_FONT).toString())); // Set the background texture Pixmap pixmap = new Pixmap(1, (int) 1, Pixmap.Format.RGB888); pixmap.setColor(Color.WHITE); pixmap.fill(); skin.add(SOLID_TEXTURE_KEY, new Texture(pixmap)); Drawable transparentDrawable = skin.newDrawable(SOLID_TEXTURE_KEY, TRANSPARENT); // Get values from the atlas skin.addRegions( EuropaGame.game.getAssetManager().get(MAIN_MENU_SKIN_DIRECTORY.resolve(ATLAS_KEY).toString())); // Colors Color textButtonFontColor = new Color(0.85f, 0.85f, 0.85f, 1.0f); // Set images Drawable textButtonBackground = new TextureRegionDrawable( skin.get(BUTTON_BACKGROUND_KEY, TextureRegion.class)); textButtonBackground.setLeftWidth(32); textButtonBackground.setRightWidth(32); textButtonBackground.setTopHeight(5); textButtonBackground.setBottomHeight(5); skin.add(BUTTON_BACKGROUND_KEY, textButtonBackground); Drawable textButtonBackgroundDown = new TextureRegionDrawable( skin.get(BUTTON_DOWN_KEY, TextureRegion.class)); textButtonBackgroundDown.setLeftWidth(32); textButtonBackgroundDown.setRightWidth(32); textButtonBackgroundDown.setTopHeight(5); textButtonBackgroundDown.setBottomHeight(5); skin.add(BUTTON_DOWN_KEY, textButtonBackgroundDown); Drawable listSelection = new TextureRegionDrawable(skin.get(LIST_SELECTION_KEY, TextureRegion.class)); listSelection.setLeftWidth(7); listSelection.setRightWidth(7); listSelection.setTopHeight(0); listSelection.setBottomHeight(0); skin.add(LIST_SELECTION_KEY, listSelection); Drawable tabButtonBackground = new TextureRegionDrawable( skin.get(TAB_BUTTON_BACKGROUND_KEY, TextureRegion.class)); tabButtonBackground.setLeftWidth(5); tabButtonBackground.setRightWidth(5); tabButtonBackground.setTopHeight(0); tabButtonBackground.setBottomHeight(0); skin.add(TAB_BUTTON_BACKGROUND_KEY, tabButtonBackground); Drawable tabButtonBackgroundSelected = new TextureRegionDrawable( skin.get(TAB_BUTTON_SELECTED_KEY, TextureRegion.class)); tabButtonBackgroundSelected.setLeftWidth(5); tabButtonBackgroundSelected.setRightWidth(5); tabButtonBackgroundSelected.setTopHeight(0); tabButtonBackgroundSelected.setBottomHeight(0); skin.add(TAB_BUTTON_SELECTED_KEY, tabButtonBackgroundSelected); Drawable titleBackground = new TextureRegionDrawable(skin.get(TITLE_BACKGROUND_KEY, TextureRegion.class)); titleBackground.setLeftWidth(10); titleBackground.setRightWidth(10); titleBackground.setTopHeight(0); titleBackground.setBottomHeight(0); skin.add(TITLE_BACKGROUND_KEY, titleBackground); Drawable numberIncreaseDrawable = new TextureRegionDrawable( skin.get(NUMBER_SELECTOR_INCREASE_KEY, TextureRegion.class)); numberIncreaseDrawable.setLeftWidth(0); numberIncreaseDrawable.setRightWidth(0); numberIncreaseDrawable.setTopHeight(0); numberIncreaseDrawable.setBottomHeight(0); skin.add(NUMBER_SELECTOR_INCREASE_KEY, numberIncreaseDrawable); Drawable numberDecreaseDrawable = new TextureRegionDrawable( skin.get(NUMBER_SELECTOR_DECREASE_KEY, TextureRegion.class)); numberDecreaseDrawable.setLeftWidth(0); numberDecreaseDrawable.setRightWidth(0); numberDecreaseDrawable.setTopHeight(0); numberDecreaseDrawable.setBottomHeight(0); skin.add(NUMBER_SELECTOR_DECREASE_KEY, numberDecreaseDrawable); skin.add(DIALOG_BACKGROUND_KEY, skin.newDrawable(new TextureRegionDrawable(skin.get(DIALOG_BACKGROUND_KEY, TextureRegion.class)), new Color(1.0f, 1.0f, 1.0f, 1.0f))); skin.add(POPUP_BACKGROUND_KEY, skin.newDrawable(new TextureRegionDrawable(skin.get(POPUP_BACKGROUND_KEY, TextureRegion.class)), new Color(1.0f, 1.0f, 1.0f, 1.0f))); skin.add(LIST_BACKGROUND_KEY, skin.newDrawable(new TextureRegionDrawable(skin.get(LIST_BACKGROUND_KEY, TextureRegion.class)), new Color(1.0f, 1.0f, 1.0f, 1.0f))); skin.add(LIST_SELECTION_KEY, skin.newDrawable(new TextureRegionDrawable(skin.get(LIST_SELECTION_KEY, TextureRegion.class)), new Color(1.0f, 1.0f, 1.0f, 1.0f))); skin.add(CREDITS_BACKGROUND_KEY, skin.newDrawable(new TextureRegionDrawable(skin.get(CREDITS_BACKGROUND_KEY, TextureRegion.class)), new Color(1.0f, 1.0f, 1.0f, 1.0f))); Drawable dropdownListBackground = skin.newDrawable( new TextureRegionDrawable(skin.get(DROP_DOWN_LIST_BACKGROUND, TextureRegion.class)), new Color(1, 1, 1, 1)); dropdownListBackground.setLeftWidth(28); dropdownListBackground.setRightWidth(28); dropdownListBackground.setTopHeight(0); dropdownListBackground.setBottomHeight(0); skin.add(DROP_DOWN_LIST_BACKGROUND, dropdownListBackground); // Create a Label style for the title Label.LabelStyle titleStyle = new Label.LabelStyle(); titleStyle.background = transparentDrawable; titleStyle.font = skin.getFont(TITLE_FONT_KEY); titleStyle.fontColor = new Color(Color.BLACK); skin.add(DEFAULT_KEY, titleStyle); // Fancy Character Label Style Label.LabelStyle fancyTitleStyle = new Label.LabelStyle(); fancyTitleStyle.background = transparentDrawable; fancyTitleStyle.font = skin.getFont(TITLE_FANCY_FONT_KEY); fancyTitleStyle.fontColor = new Color(Color.BLACK); skin.add(FANCY_KEY, fancyTitleStyle); // Create a Label style for dialogs LabelStyle infoStyle = new LabelStyle(); infoStyle.background = transparentDrawable; infoStyle.font = skin.getFont(INFO_LABEL_FONT_KEY); infoStyle.fontColor = new Color(Color.BLACK); skin.add(INFO_STYLE_KEY, infoStyle); // Default Button Style TextButton.TextButtonStyle textButtonStyle = new TextButton.TextButtonStyle(); textButtonStyle.up = textButtonBackground; textButtonStyle.down = textButtonBackgroundDown; textButtonStyle.checked = textButtonBackground; textButtonStyle.over = textButtonBackgroundDown; textButtonStyle.disabled = textButtonBackground; textButtonStyle.font = skin.getFont(BUTTON_FONT_KEY); textButtonStyle.fontColor = textButtonFontColor; textButtonStyle.disabledFontColor = new Color(0.3f, 0.3f, 0.3f, 1.0f); // textButtonStyle.pressedOffsetX = 2f; // textButtonStyle.pressedOffsetY = -3f; skin.add(DEFAULT_KEY, textButtonStyle); // Tab Button Style TextButtonStyle tabButtonStyle = new TextButtonStyle(); tabButtonStyle.up = tabButtonBackground; tabButtonStyle.down = tabButtonBackground; tabButtonStyle.checked = tabButtonBackgroundSelected; tabButtonStyle.over = tabButtonBackground; tabButtonStyle.disabled = tabButtonBackground; tabButtonStyle.font = skin.getFont(BUTTON_FONT_KEY); tabButtonStyle.fontColor = textButtonFontColor; tabButtonStyle.overFontColor = textButtonFontColor; tabButtonStyle.disabledFontColor = new Color(Color.GRAY); skin.add(TAB_STYLE_KEY, tabButtonStyle); // Create a TextField style TextFieldStyle textFieldStyle = new TextFieldStyle(); textFieldStyle.background = skin.newDrawable(SOLID_TEXTURE_KEY, new Color(0f, 0f, 0f, 0.1f)); textFieldStyle.selection = skin.newDrawable(SOLID_TEXTURE_KEY, new Color(0f, 0f, 1f, 0.3f)); textFieldStyle.cursor = skin.newDrawable(SOLID_TEXTURE_KEY, Color.BLACK); textFieldStyle.font = skin.getFont(TEXT_FIELD_FONT_KEY); textFieldStyle.fontColor = Color.BLACK; skin.add(DEFAULT_KEY, textFieldStyle); // Create a List style ListStyle listStyle = new ListStyle(); listStyle.font = skin.getFont(LIST_FONT_KEY); listStyle.fontColorSelected = Color.BLACK; listStyle.fontColorUnselected = Color.BLACK; listStyle.selection = listSelection; listStyle.background = transparentDrawable; skin.add(DEFAULT_KEY, listStyle); // Create a Scroll Pane Style ScrollPaneStyle scrollPaneStyle = new ScrollPaneStyle(); scrollPaneStyle.background = transparentDrawable; // scrollPaneStyle.vScroll = skin.newDrawable(MainMenuScreen.SCROLL_BAR_VERTICAL_KEY); // scrollPaneStyle.vScrollKnob = skin.newDrawable(MainMenuScreen.SCROLL_BAR_VERTICAL_KNOB_KEY); skin.add(DEFAULT_KEY, scrollPaneStyle); // Create a Dialog Style WindowStyle dialogStyle = new WindowStyle(); dialogStyle.background = new SpriteDrawable( new Sprite(EuropaGame.game.getAssetManager().get(BACKGROUND_FILE_NAME, Texture.class))); dialogStyle.titleFont = skin.getFont(TITLE_FONT_KEY); dialogStyle.titleFontColor = new Color(Color.BLACK); skin.add(DEFAULT_KEY, dialogStyle); // Popup Dialog Style WindowStyle popupStyle = new WindowStyle(); popupStyle.titleFont = skin.getFont(TITLE_FONT_KEY); popupStyle.titleFontColor = new Color(Color.BLACK); skin.add(POPUP_DIALOG_STYLE_KEY, popupStyle); // Create a Slider Skin SliderStyle sliderStyle = new SliderStyle(); sliderStyle.background = new TextureRegionDrawable(skin.get(SLIDER_BACKGROUND_KEY, TextureRegion.class)); sliderStyle.knob = new TextureRegionDrawable(skin.get(SLIDER_KNOB_KEY, TextureRegion.class)); skin.add(DEFAULT_KEY, sliderStyle); // Create a Drop Down Menu Skin SelectBoxStyle selectBoxStyle = new SelectBoxStyle(); selectBoxStyle.background = textButtonBackground; selectBoxStyle.backgroundOpen = textButtonBackgroundDown; selectBoxStyle.backgroundOver = textButtonBackgroundDown; selectBoxStyle.scrollStyle = scrollPaneStyle; selectBoxStyle.font = skin.getFont(TEXT_FIELD_FONT_KEY); selectBoxStyle.fontColor = textButtonFontColor; ListStyle selectBoxListStyle = new ListStyle(); selectBoxListStyle.font = skin.getFont(LIST_FONT_KEY); selectBoxListStyle.fontColorSelected = textButtonFontColor; selectBoxListStyle.fontColorUnselected = textButtonFontColor; selectBoxListStyle.selection = skin.newDrawable(SOLID_TEXTURE_KEY, SELECTION_COLOR); selectBoxListStyle.background = dropdownListBackground; selectBoxStyle.listStyle = selectBoxListStyle; skin.add(DEFAULT_KEY, selectBoxStyle); // NumberSelectorStyle NumberSelectorStyle numberStyle = new NumberSelectorStyle(); numberStyle.decrease = numberDecreaseDrawable; numberStyle.increase = numberIncreaseDrawable; numberStyle.minimumNumberSize = 50; numberStyle.numberLabelStyle = infoStyle; numberStyle.spacing = COMPONENT_SPACING; skin.add(DEFAULT_KEY, numberStyle); // AttributeSelectorStyle MultipleNumberSelectorStyle attrStyle = new MultipleNumberSelector.MultipleNumberSelectorStyle(); attrStyle.labelStyle = infoStyle; attrStyle.numberSelectorStyle = numberStyle; attrStyle.spacing = COMPONENT_SPACING; skin.add(DEFAULT_KEY, attrStyle); mainMenuSkin = skin; }
From source file:com.mbrlabs.mundus.core.Mundus.java
License:Apache License
private static void initStyle() { FreeTypeFontGenerator generator = new FreeTypeFontGenerator( Gdx.files.internal("fonts/open-sans/OpenSans-Regular.ttf")); FreeTypeFontGenerator.FreeTypeFontParameter params = new FreeTypeFontGenerator.FreeTypeFontParameter(); params.kerning = true;// www . j a va 2 s. c o m params.borderStraight = false; params.genMipMaps = true; params.hinting = FreeTypeFontGenerator.Hinting.Full; // font norm params.size = 13; BitmapFont fontNorm = generator.generateFont(params); // font small params.size = 12; BitmapFont fontSmall = generator.generateFont(params); generator.dispose(); // skin Skin skin = new Skin(); skin.add("font-norm", fontNorm, BitmapFont.class); skin.add("font-small", fontSmall, BitmapFont.class); skin.addRegions(new TextureAtlas(Gdx.files.internal("ui/skin/uiskin.atlas"))); skin.load(Gdx.files.internal("ui/skin/uiskin.json")); VisUI.load(skin); FileChooser.setFavoritesPrefsName(Main.class.getPackage().getName()); }
From source file:net.bplaced.therefactory.voraciousviper.input.gamescreen.AbstractGameScreenInputProcessor.java
License:Open Source License
AbstractGameScreenInputProcessor(final GameScreen gameScreen, Viewport viewport, TextureAtlas textureAtlas, ShapeRenderer shapeRenderer) {//from w ww. j av a 2 s . c o m this.gameScreen = gameScreen; this.viewport = viewport; this.stage = gameScreen.getStage(); gameScreen.setPreviousGameState(gameScreen.getState()); Skin skin = new Skin(); skin.addRegions(textureAtlas); pauseButton = new RetroTextButton(shapeRenderer, Config.TILE_WIDTH * 2, Config.TILE_HEIGHT * 2, VoraciousViper.getInstance().getAmigaFont(), "X", new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { super.clicked(event, x, y); pause(); } }); pauseButton.setPosition(viewport.getWorldWidth() - pauseButton.getWidth(), viewport.getWorldHeight() - pauseButton.getHeight()); pauseButton.setThickness(3); stage.addActor(pauseButton); }
From source file:net.bplaced.therefactory.voraciousviper.screens.GameScreen.java
License:Open Source License
public GameScreen(SpriteBatch batch, ShapeRenderer shapeRenderer, FitViewport viewport, OrthographicCamera camera, AssetManager assetManager, TextureAtlas textureAtlas, BitmapFont font) { this.batch = batch; this.shapeRenderer = shapeRenderer; this.font = font; this.textureAtlas = textureAtlas; this.assetManager = assetManager; hud = new Hud(this, font, textureAtlas); level = Level.fromFile(this, Gdx.files.internal("levels/original.pack"), textureAtlas); hud.setLevel(level);/*from www.ja v a 2 s . c o m*/ this.viewport = viewport; this.camera = camera; currentGameState = GameState.LevelTransition; particles = new Particles(textureAtlas); rectangleMenuDialog = new Rectangle(); rectangleMenuDialog.setSize(260, 160); rectangleMenuDialog.setPosition(viewport.getWorldWidth() / 2 - rectangleMenuDialog.getWidth() / 2, 100); stage = new Stage(); stage.setViewport(viewport); Skin skin = new Skin(); skin.addRegions(textureAtlas); int buttonWidth = 120; int buttonHeight = 70; // pause menu dialog buttonsPauseDialog = new RetroBundleTextButton[] { new RetroBundleTextButton(shapeRenderer, buttonWidth, buttonHeight, VoraciousViper.getInstance().getAmigaFont(), I18NKeys.MainMenu, new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { super.clicked(event, x, y); VoraciousViper.getInstance().showTitleScreen(); } }), new RetroBundleTextButton(shapeRenderer, buttonWidth, buttonHeight, VoraciousViper.getInstance().getAmigaFont(), I18NKeys.Restart, new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { super.clicked(event, x, y); level.reset(); } }), new RetroBundleTextButton(shapeRenderer, buttonWidth, buttonHeight, VoraciousViper.getInstance().getAmigaFont(), I18NKeys.Continue, new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { super.clicked(event, x, y); setState(previousGameState); } }) }; positionButtons(buttonsPauseDialog); // game over dialog buttonsGameOverDialog = new RetroBundleTextButton[] { new RetroBundleTextButton(shapeRenderer, buttonWidth, buttonHeight, VoraciousViper.getInstance().getAmigaFont(), I18NKeys.MainMenu, new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { super.clicked(event, x, y); VoraciousViper.getInstance().showTitleScreen(); } }), new RetroBundleTextButton(shapeRenderer, buttonWidth, buttonHeight, VoraciousViper.getInstance().getAmigaFont(), I18NKeys.ScoreTable, new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { super.clicked(event, x, y); VoraciousViper.getInstance().showScoreTable(); } }), new RetroBundleTextButton(shapeRenderer, buttonWidth, buttonHeight, VoraciousViper.getInstance().getAmigaFont(), I18NKeys.PlayAgain, new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { super.clicked(event, x, y); level.reset(); } }) }; positionButtons(buttonsGameOverDialog); // continue dialog buttonsContinueDialog = new RetroBundleTextButton[] { new RetroBundleTextButton(shapeRenderer, buttonWidth, buttonHeight, VoraciousViper.getInstance().getAmigaFont(), I18NKeys.ResetText, new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { super.clicked(event, x, y); setState(GameState.ViperCrashed); } }), new RetroBundleTextButton(shapeRenderer, buttonWidth, buttonHeight, VoraciousViper.getInstance().getAmigaFont(), I18NKeys.ContinueLevel, new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { super.clicked(event, x, y); getLevel().removeViper(); getViper().decrementLives(); getViper().setHasCrashed(false); getViper().restart(false); setState(GameState.GameIsBeginning); } }) }; positionButtons(buttonsContinueDialog); inputMultiplexer = new InputMultiplexer(); inputMultiplexer.addProcessor(0, stage); updateGameScreenControls(); }
From source file:net.bplaced.therefactory.voraciousviper.screens.TitleScreen.java
License:Open Source License
public TitleScreen(ShapeRenderer shapeRenderer, final FitViewport viewport, OrthographicCamera camera, AssetManager assetManager, TextureAtlas textureAtlas, BitmapFont font) { this.instance = this; this.shapeRenderer = shapeRenderer; this.camera = camera; this.assetManager = assetManager; this.font = font; this.viewport = viewport; this.prefs = SettingsManager.getInstance().get(); this.keyboardInputListener = new KeyboardInputListener(this); this.state = TitleScreenState.ShowMainMenu; this.stringBuilder = new StringBuilder(); if (SettingsManager.getInstance().isMusicEnabled()) VoraciousViper.getInstance().playMusicFile(true); paddingFromViewport = 10;//w w w . j a v a2s. co m int hSpaceBetweenButtons = 10; vSpaceBetweenButtons = 20; camera.position.set(viewport.getWorldWidth() / 2, viewport.getWorldHeight() / 2, 0); camera.update(); if (Config.SHOW_BADGE) { spriteBadge = new Sprite(new Texture("google-play-badge.png")); } spriteTitle = new Sprite(new Texture("title.png")); rectangleTitle = new Rectangle(viewport.getWorldWidth() / 2 - spriteTitle.getWidth() / 2 + xOffset, 200, spriteTitle.getWidth(), spriteTitle.getHeight()); rectangleTitleScoreTable = new Rectangle(8, viewport.getWorldHeight() - 40, rectangleTitle.width / 2, rectangleTitle.height / 2); spriteTitle.setBounds(rectangleTitle.x, rectangleTitle.y, rectangleTitle.width, rectangleTitle.height); spriteInfo = textureAtlas.createSprite("Info"); spriteSettings = textureAtlas.createSprite("settings"); spriteThere = new Sprite(new Texture("there.png")); spriteFactory = new Sprite(new Texture("factory.png")); spriteDownload = new Sprite(new Texture("download.png")); spriteStar = new Sprite(new Texture("star.png")); indexCurrentHeadSprite = 0; spritesViperHeads = new Sprite[6]; spritesViperHeads[0] = textureAtlas.createSprite("Head.X.1.Green"); spritesViperHeads[1] = textureAtlas.createSprite("Head.X.2.Green"); spritesViperHeads[2] = textureAtlas.createSprite("Head.X.1.Purple"); spritesViperHeads[3] = textureAtlas.createSprite("Head.X.2.Purple"); spritesViperHeads[4] = textureAtlas.createSprite("Head.X.1.Blue"); spritesViperHeads[5] = textureAtlas.createSprite("Head.X.2.Blue"); stage = new Stage(); stage.setViewport(this.viewport); Skin skin = new Skin(); skin.addRegions(textureAtlas); // button to close settings buttonClose = new RetroTextButton(shapeRenderer, 52, 52, font, "X", new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { super.clicked(event, x, y); setState(TitleScreenState.ShowMainMenu); } }); buttonClose.setPosition(viewport.getWorldWidth() - buttonClose.getWidth() - vSpaceBetweenButtons, viewport.getWorldHeight() - buttonClose.getHeight() - vSpaceBetweenButtons); buttonClose.setThickness(3); stage.addActor(buttonClose); // button to show about screen buttonSwitchBetweenAboutAndSettings = new RetroTextButton(shapeRenderer, 52, 52, font, "?", new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { super.clicked(event, x, y); if (state.equals(TitleScreenState.ShowSettings)) { // toggle about screen setState(TitleScreenState.ShowAbout); } else { setState(TitleScreenState.ShowSettings); } } }); buttonSwitchBetweenAboutAndSettings.setPosition( buttonClose.getX() - buttonSwitchBetweenAboutAndSettings.getWidth() - hSpaceBetweenButtons, buttonClose.getY()); stage.addActor(buttonSwitchBetweenAboutAndSettings); // button to rate app buttonRate = new RetroTextButton(shapeRenderer, 100, 52, font, "Rate", new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { super.clicked(event, x, y); Gdx.net.openURI(URL_TO_PLAY_STORE); } }); buttonRate.setPosition(250, buttonSwitchBetweenAboutAndSettings.getY()); stage.addActor(buttonRate); // button to view the soundtrack buttonSoudtrack = new RetroTextButton(shapeRenderer, 100, 52, font, "Soundtrack", new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { super.clicked(event, x, y); Gdx.net.openURI(URL_TO_SOUNDTRACK); } }); buttonSoudtrack.setPosition(370, buttonSwitchBetweenAboutAndSettings.getY()); stage.addActor(buttonSoudtrack); // initialize buttons for main menu int buttonSize = 130; buttonsMainMenu = new RetroBundleTextButton[] { new RetroBundleTextButton(shapeRenderer, buttonSize, 100, font, I18NKeys.Singleplayer, new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { super.clicked(event, x, y); VoraciousViper.getInstance().startGame(); } }), new RetroBundleTextButton(shapeRenderer, buttonSize, 100, font, I18NKeys.ScoreTable, new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { super.clicked(event, x, y); showScoreTable(); } }), new RetroBundleTextButton(shapeRenderer, buttonSize, 100, font, I18NKeys.Settings, new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { super.clicked(event, x, y); setState(TitleScreenState.ShowSettings); } }), new RetroBundleTextButton(shapeRenderer, buttonSize, 100, font, I18NKeys.About, new ClickListener() { @Override public void touchUp(InputEvent event, float x, float y, int pointer, int button) { super.touchUp(event, x, y, pointer, button); if (Config.SHOW_BADGE) { setState(TitleScreenState.ShowBadge); } else { setState(TitleScreenState.ShowAbout); } } }) }; for (RetroTextButton textButton : buttonsMainMenu) { textButton.setPosition(paddingFromViewport, paddingFromViewport); textButton.setAlignment(TextAlign.CenterBottom); stage.addActor(textButton); } buttonSize = 52; // initialize buttons for settings menu buttonsSettings = new AbstractRetroButton[][] { new RetroImageButton[] { new RetroImageButton(shapeRenderer, buttonSize, buttonSize, skin.getDrawable("flag_usa"), PrefsKeys.Language, Locale.ENGLISH.toString()), new RetroImageButton(shapeRenderer, buttonSize, buttonSize, skin.getDrawable("flag_austria"), PrefsKeys.Language, Locale.GERMAN.toString()) }, new RetroImageToggleButton[] { new RetroImageToggleButton(shapeRenderer, buttonSize, buttonSize, skin.getDrawable("music.on"), skin.getDrawable("music.off"), PrefsKeys.Music, true), new RetroImageToggleButton(shapeRenderer, buttonSize, buttonSize, skin.getDrawable("sound.on"), skin.getDrawable("sound.off"), PrefsKeys.Sound, true) }, new RetroTextButton[] { new RetroTextButton(shapeRenderer, buttonSize, buttonSize, font, I18NKeys.Playername, new ClickListener() { @Override public void touchUp(InputEvent event, float x, float y, int pointer, int button) { super.touchUp(event, x, y, pointer, button); Gdx.input.getTextInput(keyboardInputListener, VoraciousViper.getInstance().getBundle() .get(I18NKeys.PleaseEnterYourPlayername), SettingsManager.getInstance().get().getString(PrefsKeys.PlayerName), ""); } }) }, new RetroImageButton[] { new RetroImageButton(shapeRenderer, buttonSize, buttonSize, skin.getDrawable("controls_touchareas"), PrefsKeys.Controls, PrefsKeys.ControlsTouchAreas), new RetroImageButton(shapeRenderer, buttonSize, buttonSize, skin.getDrawable("controls_touchpad"), PrefsKeys.Controls, PrefsKeys.ControlsTouchPad), new RetroImageButton(shapeRenderer, buttonSize, buttonSize, skin.getDrawable("controls_relative"), PrefsKeys.Controls, PrefsKeys.ControlsRelative), // new RetroImageButton(shapeRenderer, buttonSize, buttonSize, skin.getDrawable("controls_swipe"), // PrefsKeys.Controls, PrefsKeys.ControlsSwipe), // new RetroImageButton(shapeRenderer, buttonSize, buttonSize, skin.getDrawable("controls_joystick"), // PrefsKeys.Controls, PrefsKeys.ControlsJoystick) }, }; // listeners to change locale in settings manager ClickListener clickListener = new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { super.clicked(event, x, y); VoraciousViper.getInstance().setLocale(prefs.getString(PrefsKeys.Language)); updatePlayernameText(); } }; buttonsSettings[0][0].addListener(clickListener); buttonsSettings[0][1].addListener(clickListener); ((RetroTextButton) buttonsSettings[2][0]).setAutoSize(true); buttonsSettings[1][0].addListener(new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { super.clicked(event, x, y); if (SettingsManager.getInstance().isMusicEnabled()) { VoraciousViper.getInstance().playMusicFile(true); } else { VoraciousViper.getInstance().pauseMusic(); } } }); // equally distribute settings buttons based on the defined buttonSize for (int i = 0; i < buttonsSettings.length; i++) { for (int j = 0; j < buttonsSettings[i].length; j++) { buttonsSettings[i][j].setPosition(vSpaceBetweenButtons + j * (buttonSize + hSpaceBetweenButtons), vSpaceBetweenButtons * 2 + (buttonsSettings.length - 1 - i) * (vSpaceBetweenButtons + buttonSize)); int pointer = 0; if (i == 0 || i == 3) { AbstractRetroButton[] adjacentButtons = new AbstractRetroButton[buttonsSettings[i].length - 1]; for (int k = 0; k < buttonsSettings[i].length; k++) { if (k != j) { adjacentButtons[pointer++] = buttonsSettings[i][k]; } } ((RetroImageButton) buttonsSettings[i][j]).setAdjacentButtons(adjacentButtons); } stage.addActor(buttonsSettings[i][j]); } } scaler = new Scaler(0, 1, .003f, true); colorScaler = new Color(); xOffsetMax = 80; scrollbarMaximumY = viewport.getWorldHeight() - buttonClose.getHeight() + 1; scrollbarCurrentY = scrollbarMaximumY; inputMultiplexer = new InputMultiplexer(); inputHandler = new TitleScreenInputProcessor(this, scrollbarMaximumY, 0); inputMultiplexer.addProcessor(inputHandler); inputMultiplexer.addProcessor(stage); scrollbarHandle = new RetroTextButton(shapeRenderer, 52, 25, font, "", new ClickListener() { }); scrollbarHandle.setX(viewport.getWorldWidth() - scrollbarHandle.getWidth()); scrollbarHandle.setThickness(3); stage.addActor(scrollbarHandle); }