List of usage examples for com.badlogic.gdx.scenes.scene2d.ui Label setAlignment
public void setAlignment(int alignment)
From source file:be.ac.ucl.lfsab1509.bouboule.game.screen.AboutScreen.java
License:Open Source License
@Override public void show() { super.show(); //Set Background addBackGroundShift("GdxMenus/settings/settingsbg.jpg"); // Note: no accent with the default font and multiple spaces or \t are not working String cAboutText = "App's name:\n" + " Bouboule\n\n" + "Authors: (v1)\n" + " Baerts Matthieu, Remy Baptiste, Van Wallendael " + "Nicolas and Verhaeghe Helene\n\n" + "Authors: (v2+)\n" + " Baerts Matthieu, Van Wallendael Nicolas\n\n" + "Graphisms:\n" + " Van Wallendael Julien\n\n" + "Music and sounds:\n" + " Adans Paschal (adanspaschal.gmail.com) and" + " Klez (The gateway - SpaceShip level)\n\n" + "Credits & License:\n" + " Bouboule was developed during the course" + " FSAB1509 - Projet Informatique (Yves Deville, Universite" + " Catholique de Louvain, Belgium), 2012-2013.\n\n" + "Open-Source GPL3 license and developed with LibGDX" + " (Free and Open-Source game development framework under" + " Apache License 2.0)."; int iVersion = Gdx.app.getVersion(); if (iVersion > 0) cAboutText += "\n\nVersion: " + iVersion; Label label = new Label(cAboutText, getSkin(), "osaka-font", Color.WHITE); // not on the border label.setWidth(GlobalSettings.APPWIDTH - 20 * GlobalSettings.HD); label.setHeight(GlobalSettings.APPHEIGHT - 20 * GlobalSettings.HD); label.setPosition(10 * GlobalSettings.HD, 10 * GlobalSettings.HD); label.setAlignment(Align.center); label.setWrap(true); // return to the next lines // filters/*from w ww .jav a 2 s .c om*/ // label.getStyle().font.getRegion().getTexture().setFilter(TextureFilter.Linear, TextureFilter.Linear); // label.setFillParent(true); used all the screen: too large stage.addActor(label); //Create all Buttons addBackButton(false); }
From source file:ca.hiphiparray.amazingmaze.ContinueScreen.java
License:Open Source License
/** * Displays the high score dialog.// w w w . j a v a 2s . c o m */ public void highScoreDialog() { Label.LabelStyle labelStyle = new Label.LabelStyle( game.assets.getFont(Assets.MONO_REGULAR, Assets.SMALL_FONT_SIZE), Color.WHITE); final Dialog dialog = new Dialog("High Score", game.assets.skin); final TextButton okButton = new TextButton("OK", game.assets.skin); dialog.getButtonTable().bottom(); Label label = new Label("Enter your name:", labelStyle); label.setScale(.5f); label.setWrap(true); label.setAlignment(Align.center); final TextField nameField = new TextField("", game.assets.skin); dialog.add(label).width(500).pad(50); dialog.add(nameField); dialog.add(okButton).bottom(); nameField.setTextFieldListener(new TextFieldListener() { @Override public void keyTyped(TextField textField, char key) { name = formatString(nameField.getText()); if (!name.equals("")) { if (key == (char) 13) { displayHighScores(name); } } } }); okButton.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { name = formatString(nameField.getText()); if (!name.equals("")) { if (okButton.isPressed()) { dialog.hide(); displayHighScores(name); } } } }); dialog.addListener(new InputListener() { @Override public boolean keyDown(InputEvent event, int keycode) { name = formatString(nameField.getText()); if (!name.equals("")) { if (keycode == Keys.ENTER) { displayHighScores(name); return true; } } return false; } }); dialog.show(stage); }
From source file:ca.hiphiparray.amazingmaze.CreditsScreen.java
License:Open Source License
/** * Helper method to create centred labels. * * @param lines the lines to put in the label. Assumed to have at least one element. * @param skin the skin to load the style from. * @return a new {@link Label} with the given properties. */// ww w . jav a2 s .co m private Label setupCreditsLabel(String[] lines, String style) { String s = lines[0]; for (int i = 1; i < lines.length; i++) { s += "\n" + lines[i]; } Label label = new Label(s, game.assets.skin, style); label.setAlignment(Align.center); return label; }
From source file:ca.hiphiparray.amazingmaze.FishMiniGame.java
License:Open Source License
/** * Constructor for FishMiniGame./*w w w.j a v a2 s.c o m*/ * * @param game the {@link AmazingMazeGame} instance that is managing this screen. * @param player the {@link Player} instance that completed the last level. */ public FishMiniGame(final AmazingMazeGame game, Player player) { this.game = game; this.player = player; fishNumber = new int[5]; fishNumber[0] = this.player.blueCollected; fishNumber[1] = this.player.purpleCollected; fishNumber[2] = this.player.greenCollected; fishNumber[3] = this.player.redCollected; fishNumber[4] = this.player.orangeCollected; answer = 0; for (int i = 0; i < fishNumber.length; i++) { answer += fishNumber[i] * fishValue[i]; } stage = new Stage(new ScreenViewport(), this.game.batch); menuTable = new Table(); fishTable = new Table(); canvas = new Canvas( new Pixmap(Gdx.graphics.getWidth(), Gdx.graphics.getHeight() + shift, Pixmap.Format.RGB565)); menuTable.setFillParent(true); menuTable.top(); fishTable.bottom(); fishTable.setFillParent(true); fishImage = new Image[5]; TextureAtlas atlas = this.game.assets.manager.get(Assets.GAME_ATLAS_LOCATION, TextureAtlas.class); fishImage[0] = new Image(atlas.findRegion(Assets.FISH + Assets.BLUE_MODIFIER)); fishImage[0].setScale(4f); fishImage[1] = new Image(atlas.findRegion(Assets.FISH + Assets.PURPLE_MODIFIER)); fishImage[1].setScale(4f); fishImage[2] = new Image(atlas.findRegion(Assets.FISH + Assets.GREEN_MODIFIER)); fishImage[2].setScale(4f); fishImage[3] = new Image(atlas.findRegion(Assets.FISH + Assets.RED_MODIFIER)); fishImage[3].setScale(4f); fishImage[4] = new Image(atlas.findRegion(Assets.FISH + Assets.ORANGE_MODIFIER)); fishImage[4].setScale(4f); pencilButton = new Button(new TextureRegionDrawable( new TextureRegion(this.game.assets.manager.get(Assets.PENCIL_BUTTON, Texture.class)))); pencilButton.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { if (pencilButton.isPressed()) { canvas.setColor(drawColor); } } }); eraserButton = new Button(new TextureRegionDrawable( new TextureRegion(this.game.assets.manager.get(Assets.ERASER_BUTTON, Texture.class)))); eraserButton.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { if (eraserButton.isPressed()) { canvas.setColor(clearColor); } } }); helpButton = new Button(new TextureRegionDrawable( new TextureRegion(this.game.assets.manager.get(Assets.HELP_BUTTON, Texture.class)))); helpButton.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { if (helpButton.isPressed()) { Label.LabelStyle labelStyle = new Label.LabelStyle( game.assets.getFont(Assets.MONO_REGULAR, Assets.SMALL_FONT_SIZE), Color.WHITE); final Dialog dialog = new Dialog("Help", game.assets.skin); final TextButton okButton = new TextButton("OK", game.assets.skin); dialog.getButtonTable().bottom(); Label label = new Label("Find the total value of fish that you retrieved!\n" + "Each colour corresponds to the colour of Canadian money.\n" + "The numbers correspond to each number of fish you got.\n\n" + "In case you forgot: blue is 5, purple is 10, green is 20, red is 50, and orange is 100.", labelStyle); label.setScale(.5f); label.setWrap(true); label.setAlignment(Align.center); dialog.add(label).width(500).pad(50); dialog.add(okButton).bottom(); okButton.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { if (okButton.isPressed()) { dialog.hide(); canvas.setColor(drawColor); } } }); dialog.key(Keys.ENTER, true); dialog.show(stage); } } }); checkButton = new Button(new TextureRegionDrawable( new TextureRegion(this.game.assets.manager.get(Assets.CHECK_BUTTON, Texture.class)))); checkButton.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { dialog(); } }); clearButton = new Button(new TextureRegionDrawable( new TextureRegion(this.game.assets.manager.get(Assets.CLEAR_BUTTON, Texture.class)))); clearButton.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { if (clearButton.isPressed()) { canvas.clear(); canvas.setColor(drawColor); } } }); answerField = new TextField("", game.assets.skin); answerField.setTextFieldListener(new TextFieldListener() { @Override public void keyTyped(TextField textField, char key) { if (key == (char) 13) { stage.unfocus(answerField); dialog(); } } }); stage.addActor(menuTable); stage.addActor(canvas); stage.addActor(fishTable); menuTable.clear(); fishTable.clear(); helpButton.right(); menuTable.background(new TextureRegionDrawable( new TextureRegion(this.game.assets.manager.get(Assets.MINI_BACKGROUND, Texture.class)))); menuTable.add(pencilButton).pad(10).size(64); menuTable.add(eraserButton).pad(10).size(64); menuTable.add(clearButton).pad(10).size(64); menuTable.add(helpButton).pad(10).size(64); menuTable.row(); Label.LabelStyle labelStyle = new Label.LabelStyle( game.assets.getFont(Assets.SANS_REGULAR, Assets.REGULAR_FONT_SIZE), Color.WHITE); for (int i = 0; i < 5; i++) { fishTable.add(fishImage[i]).bottom().left().padLeft(10); } fishTable.add(answerField).minWidth(150).padLeft(150); fishTable.add(checkButton).pad(10).size(64); fishTable.row(); for (int i = 0; i < 5; i++) { fishTable.add(new Label(fishNumber[i] + "", labelStyle)).pad(30).center(); } fishTable.row(); setupPauseMenu(); input = new InputMultiplexer(stage, this); input.addProcessor(pauseMenu); }
From source file:ca.hiphiparray.amazingmaze.FishMiniGame.java
License:Open Source License
/** * Displays the results dialog.//from w ww. ja v a 2 s . c om */ public void dialog() { message = formatString(answerField.getText()); Label.LabelStyle labelStyle = new Label.LabelStyle( game.assets.getFont(Assets.MONO_REGULAR, Assets.SMALL_FONT_SIZE), Color.WHITE); final Dialog dialog = new Dialog("Results", game.assets.skin); final TextButton okButton = new TextButton("OK", game.assets.skin); dialog.getButtonTable().bottom(); if (checkAnswer() == -1) { Label label = new Label("Invalid answer. Please try again.", labelStyle); label.setScale(.5f); label.setWrap(true); label.setAlignment(Align.center); dialog.add(label).width(500).pad(50); dialog.add(okButton).bottom(); okButton.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { if (okButton.isPressed()) { dialog.hide(); canvas.setColor(drawColor); } } }); dialog.addListener(new InputListener() { @Override public boolean keyDown(InputEvent event, int keycode) { if (keycode == Keys.ENTER) { dialog.hide(); return true; } return false; } }); } else { Label label = new Label("Your answer was: " + message + ". " + "The correct answer was: " + answer + ". " + "You get " + checkAnswer() + " back!", labelStyle); game.save.addScore(checkAnswer()); game.save.setLives(player.getLives()); label.setScale(.5f); label.setWrap(true); label.setAlignment(Align.center); dialog.add(label).width(500).pad(50); dialog.add(okButton).bottom(); okButton.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { if (okButton.isPressed()) { dialog.cancel(); if ((game.save.getLevel() - 1) % 5 == 0) { game.setScreen(new ContinueScreen(game, true)); } else { game.setScreen(new MazeScreen(game, false)); } } } }); dialog.addListener(new InputListener() { @Override public boolean keyDown(InputEvent event, int keycode) { if (keycode == Keys.ENTER) { if ((game.save.getLevel() - 1) % 5 == 0) { game.setScreen(new ContinueScreen(game, true)); } else { game.setScreen(new MazeScreen(game, false)); } return true; } return false; } }); } dialog.show(stage); }
From source file:com.agateau.pixelwheels.racescreen.HudContent.java
License:Open Source License
private void createPlayerLabels(AnchorGroup root) { Skin skin = mAssets.ui.skin;/*www . java 2 s . com*/ int playerCount = mGameWorld.getPlayerRacers().size; Actor topEdge = root; Anchor topAnchor = Anchor.TOP_RIGHT; float hMargin = -5; boolean singlePlayer = mGameWorld.getPlayerRacers().size == 1; for (int idx = 0; idx < playerCount; ++idx) { Label rankLabel = new Label("", skin, singlePlayer ? "hudRank" : "smallHudRank"); rankLabel.setAlignment(Align.right); Label lapLabel = new Label("", skin, singlePlayer ? "hud" : "smallHud"); lapLabel.setAlignment(Align.right); root.addPositionRule(rankLabel, Anchor.TOP_RIGHT, topEdge, topAnchor, hMargin, 0); root.addPositionRule(lapLabel, Anchor.TOP_RIGHT, rankLabel, Anchor.BOTTOM_RIGHT, 0, 10); mRankLabels.add(rankLabel); mLapLabels.add(lapLabel); topAnchor = Anchor.BOTTOM_RIGHT; topEdge = lapLabel; hMargin = 0; } }
From source file:com.agateau.ui.UiBuilder.java
License:Apache License
protected Label createLabel(XmlReader.Element element) { String styleName = element.getAttribute("style", "default"); String text = processText(element.getText()); Label label = new Label(text, mSkin, styleName); int align = parseAlign(element); if (align != -1) { label.setAlignment(align); }//from w ww. ja v a 2 s . co m return label; }
From source file:com.bladecoder.engine.ui.LoadSaveScreen.java
License:Apache License
@Override public void show() { float size = DPIUtils.getPrefButtonSize(); float pad = DPIUtils.getMarginSize(); final Skin skin = ui.getSkin(); final World world = World.getInstance(); // loadScreenMode = ui.getScreen(Screens.LOAD_GAME_SCREEN) == this; loadScreenMode = world.getCurrentScene() == null; stage = new Stage(new ScreenViewport()); slotWidth = (int) (stage.getViewport().getWorldWidth() / (ROW_SLOTS + 1) - 2 * pad); slotHeight = (int) (slotWidth * stage.getViewport().getScreenHeight() / stage.getViewport().getScreenWidth()); LoadSaveScreenStyle style = skin.get(LoadSaveScreenStyle.class); Drawable bg = style.background;//from www. j a v a 2 s. c o m if (bg == null && style.bgFile != null) { bgTexFile = new Texture(EngineAssetManager.getInstance().getResAsset(style.bgFile)); bgTexFile.setFilter(TextureFilter.Linear, TextureFilter.Linear); bg = new TextureRegionDrawable(new TextureRegion(bgTexFile)); } Table table = new Table(skin); table.setFillParent(true); table.center(); table.pad(pad); Label title = new Label(loadScreenMode ? I18N.getString("ui.load") : I18N.getString("ui.save"), skin, "title"); Button back = new Button(skin, "back"); back.addListener(new ClickListener() { public void clicked(InputEvent event, float x, float y) { ui.setCurrentScreen(Screens.MENU_SCREEN); } }); Table header = new Table(); // header.padBottom(pad); Container<Button> cont = new Container<Button>(back); cont.size(size); header.add(cont); header.add(title).fillX().expandX().left(); table.add(header).fillX().expandX().left(); if (bg != null) table.setBackground(bg); table.addListener(new InputListener() { @Override public boolean keyUp(InputEvent event, int keycode) { if (keycode == Input.Keys.ESCAPE || keycode == Input.Keys.BACK) if (world.getCurrentScene() != null) ui.setCurrentScreen(Screens.SCENE_SCREEN); return true; } }); final PagedScrollPane scroll = new PagedScrollPane(); scroll.setFlingTime(0.1f); scroll.setPageSpacing(25); Table slots = new Table().pad(pad); slots.defaults().pad(pad).size(slotWidth + pad, slotHeight + pad * 2).top(); int c = 0; // Add "new slot" slot for save screen if (!loadScreenMode) { slots.add(getSlotButton(Long.toString(new Date().getTime()))).fill().expand(); c++; } final List<String> sl = getSlots(); Collections.sort(sl); for (int j = sl.size() - 1; j >= 0; j--) { String s = sl.get(j); if (c % ROW_SLOTS == 0 && c % (ROW_SLOTS * COL_SLOTS) != 0) slots.row(); if (c != 0 && c % (ROW_SLOTS * COL_SLOTS) == 0) { scroll.addPage(slots); slots = new Table().pad(pad); slots.defaults().pad(pad).size(slotWidth + pad, slotHeight + pad * 2).top(); } Button removeButton = new Button(skin, "delete_game"); removeButton.setName(s); removeButton.addListener(removeClickListener); Container<Button> container = new Container<Button>(removeButton); container.size(DPIUtils.getPrefButtonSize() * .75f); container.align(Align.topRight); slots.stack(getSlotButton(s), container).fill().expand(); c++; } // Add last page if (slots.getCells().size > 0) scroll.addPage(slots); table.row(); if (loadScreenMode && sl.size() == 0) { Label lbl = new Label(I18N.getString("ui.noSavedGames"), skin, "title"); lbl.setAlignment(Align.center); table.add(lbl).expand().fill(); } else { table.add(scroll).expand().fill(); } table.pack(); stage.setKeyboardFocus(table); stage.addActor(table); pointer = new Pointer(ui.getSkin()); stage.addActor(pointer); Gdx.input.setInputProcessor(stage); }
From source file:com.bladecoder.engine.ui.LoadSaveScreen.java
License:Apache License
/** * Creates a button to represent one slot * * @param slot//from www. ja va 2 s .c o m * @return The button to use for one slot */ private Button getSlotButton(String slot) { final Skin skin = ui.getSkin(); final Button button = new Button(new ButtonStyle()); final ButtonStyle style = button.getStyle(); style.up = style.down = skin.getDrawable("black"); String textLabel = I18N.getString("ui.newSlot"); button.setSize(slotWidth, slotHeight); if (slotExists(slot)) { button.add(getScreenshot(slot)).maxSize(slotWidth * .95f, slotHeight * .95f); try { long l = Long.parseLong(slot); Date d = new Date(l); textLabel = (new SimpleDateFormat()).format(d); } catch (Exception e) { textLabel = slot; } button.addListener(loadClickListener); } else { Image fg = new Image(skin.getDrawable("plus")); button.add(fg).maxSize(slotHeight / 2, slotHeight / 2); button.addListener(saveClickListener); } button.row(); Label label = new Label(textLabel, skin); label.setAlignment(Align.center); button.add(label).fillX(); button.setName(slot); return button; }
From source file:com.bladecoder.engine.ui.MenuScreen.java
License:Apache License
@Override public void show() { stage = new Stage(new ScreenViewport()); final Skin skin = ui.getSkin(); final World world = World.getInstance(); final MenuScreenStyle style = skin.get(MenuScreenStyle.class); final BitmapFont f = skin.get(style.textButtonStyle, TextButtonStyle.class).font; float buttonWidth = f.getCapHeight() * 15f; // Image background = new Image(style.background); Drawable bg = style.background;/*from ww w. java 2 s.co m*/ if (bg == null && style.bgFile != null) { bgTexFile = new Texture(EngineAssetManager.getInstance().getResAsset(style.bgFile)); bgTexFile.setFilter(TextureFilter.Linear, TextureFilter.Linear); bg = new TextureRegionDrawable(new TextureRegion(bgTexFile)); } final Table table = new Table(); table.setFillParent(true); table.center(); if (bg != null) table.setBackground(bg); table.addListener(new InputListener() { @Override public boolean keyUp(InputEvent event, int keycode) { if (keycode == Input.Keys.ESCAPE || keycode == Input.Keys.BACK) if (world.getCurrentScene() != null) ui.setCurrentScreen(Screens.SCENE_SCREEN); return true; } }); table.defaults().pad(BUTTON_PADDING).width(buttonWidth); stage.setKeyboardFocus(table); if (style.showTitle) { Label title = new Label(Config.getProperty(Config.TITLE_PROP, "Adventure Blade Engine"), skin, style.titleStyle); title.setAlignment(Align.center); table.add(title).padBottom(DPIUtils.getMarginSize() * 2); table.row(); } if (world.savedGameExists() || world.getCurrentScene() != null) { TextButton continueGame = new TextButton(I18N.getString("ui.continue"), skin, style.textButtonStyle); continueGame.addListener(new ClickListener() { public void clicked(InputEvent event, float x, float y) { if (world.getCurrentScene() == null) try { world.load(); } catch (Exception e) { Gdx.app.exit(); } ui.setCurrentScreen(Screens.SCENE_SCREEN); } }); table.add(continueGame); } TextButton newGame = new TextButton(I18N.getString("ui.new"), skin, style.textButtonStyle); newGame.addListener(new ClickListener() { public void clicked(InputEvent event, float x, float y) { if (world.savedGameExists()) { Dialog d = new Dialog("", skin) { protected void result(Object object) { if (((Boolean) object).booleanValue()) { try { world.newGame(); } catch (Exception e) { Gdx.app.exit(); } ui.setCurrentScreen(Screens.SCENE_SCREEN); } } }; d.pad(DPIUtils.getMarginSize()); d.getButtonTable().padTop(DPIUtils.getMarginSize()); d.getButtonTable().defaults().padLeft(DPIUtils.getMarginSize()) .padRight(DPIUtils.getMarginSize()); Label l = new Label(I18N.getString("ui.override"), ui.getSkin(), "ui-dialog"); l.setWrap(true); l.setAlignment(Align.center); d.getContentTable().add(l).prefWidth(Gdx.graphics.getWidth() * .7f); d.button(I18N.getString("ui.yes"), true, ui.getSkin().get("ui-dialog", TextButtonStyle.class)); d.button(I18N.getString("ui.no"), false, ui.getSkin().get("ui-dialog", TextButtonStyle.class)); d.key(Keys.ENTER, true).key(Keys.ESCAPE, false); d.show(stage); } else { try { world.newGame(); } catch (Exception e) { Gdx.app.exit(); } ui.setCurrentScreen(Screens.SCENE_SCREEN); } } }); table.row(); table.add(newGame); TextButton loadGame = new TextButton(I18N.getString("ui.load"), skin, style.textButtonStyle); loadGame.addListener(new ClickListener() { public void clicked(InputEvent event, float x, float y) { ui.setCurrentScreen(Screens.LOAD_GAME_SCREEN); } }); table.row(); table.add(loadGame); // if (world.getCurrentScene() != null) { // TextButton saveGame = new TextButton(I18N.getString("ui.save"), skin, style.textButtonStyle); // saveGame.addListener(new ClickListener() { // public void clicked(InputEvent event, float x, float y) { // ui.setCurrentScreen(Screens.SAVE_GAME_SCREEN); // } // }); // // table.row(); // table.add(saveGame); // } TextButton quit = new TextButton(I18N.getString("ui.quit"), skin, style.textButtonStyle); quit.addListener(new ClickListener() { public void clicked(InputEvent event, float x, float y) { Gdx.app.exit(); } }); table.row(); table.add(quit); table.pack(); stage.addActor(table); // BOTTOM-RIGHT BUTTON STACK credits = new Button(skin, "credits"); credits.addListener(new ClickListener() { public void clicked(InputEvent event, float x, float y) { ui.setCurrentScreen(Screens.CREDIT_SCREEN); } }); help = new Button(skin, "help"); help.addListener(new ClickListener() { public void clicked(InputEvent event, float x, float y) { ui.setCurrentScreen(Screens.HELP_SCREEN); } }); debug = new Button(skin, "debug"); debug.addListener(new ClickListener() { public void clicked(InputEvent event, float x, float y) { DebugScreen debugScr = new DebugScreen(); debugScr.setUI(ui); ui.setCurrentScreen(debugScr); } }); Table buttonStack = new Table(); buttonStack.defaults().pad(DPIUtils.getSpacing()).size(DPIUtils.getPrefButtonSize(), DPIUtils.getPrefButtonSize()); buttonStack.pad(DPIUtils.getMarginSize() * 2); if (EngineLogger.debugMode() && world.getCurrentScene() != null) { buttonStack.add(debug); buttonStack.row(); } buttonStack.add(help); buttonStack.row(); buttonStack.add(credits); buttonStack.bottom().right(); buttonStack.setFillParent(true); buttonStack.pack(); stage.addActor(buttonStack); Label version = new Label("v" + Config.getProperty(Config.VERSION_PROP, " unspecified"), skin); version.setPosition(DPIUtils.getMarginSize(), DPIUtils.getMarginSize()); stage.addActor(version); debug.addListener(new ClickListener() { public void clicked(InputEvent event, float x, float y) { DebugScreen debugScr = new DebugScreen(); debugScr.setUI(ui); ui.setCurrentScreen(debugScr); } }); pointer = new Pointer(skin); stage.addActor(pointer); Gdx.input.setInputProcessor(stage); }