List of usage examples for com.badlogic.gdx.utils Align topLeft
int topLeft
To view the source code for com.badlogic.gdx.utils Align topLeft.
Click Source Link
From source file:com.agateau.ui.UiBuilder.java
License:Apache License
private static int parseAlign(XmlReader.Element element) { String alignText = element.getAttribute("align", ""); if (alignText.isEmpty()) { return -1; }/*from w w w.j a v a 2 s. com*/ if (alignText.equals("center")) { return Align.center; } else if (alignText.equals("centerLeft")) { return Align.left; } else if (alignText.equals("centerRight")) { return Align.right; } else if (alignText.equals("topLeft")) { return Align.topLeft; } else if (alignText.equals("topCenter")) { return Align.top; } else if (alignText.equals("topRight")) { return Align.topRight; } else if (alignText.equals("bottomLeft")) { return Align.bottomLeft; } else if (alignText.equals("bottomCenter")) { return Align.bottom; } else if (alignText.equals("bottomRight")) { return Align.bottomRight; } else { throw new RuntimeException("Unknown value of 'align': " + alignText); } }
From source file:com.forerunnergames.peril.client.ui.screens.menus.AbstractMenuScreen.java
License:Open Source License
protected final void addSubTitle(final String text) { Arguments.checkIsNotNull(text, "text"); final int mainTitlePaddingTop = 5; final int subtitleHeight = 30; final int subtitlePaddingTop = 4; final int subtitlePaddingBottom = 1; final int subtitleAlignment = Align.topLeft; subTitleLabel.setText(text);/*from w w w . j a v a 2 s . c om*/ subTitleLabel.setAlignment(subtitleAlignment); // @formatter:off titleTable.row(); titleTable.add(subTitleLabel).expandX().height(subtitleHeight).fill().align(subtitleAlignment) .padTop(subtitlePaddingTop).padBottom(subtitlePaddingBottom); titlesTableCell.height( titlesTableCell.getPrefHeight() + subtitleHeight + subtitlePaddingTop + subtitlePaddingBottom) .padTop(mainTitlePaddingTop); titleBackgroundCell.height(titleBackgroundCell.getPrefHeight() + subtitleHeight + subtitlePaddingTop + subtitlePaddingBottom + mainTitlePaddingTop); // @formatter:on }
From source file:com.forerunnergames.peril.client.ui.screens.menus.modes.classic.creategame.ClassicGameModeCreateGameMenuScreen.java
License:Open Source License
public ClassicGameModeCreateGameMenuScreen(final MenuScreenWidgetFactory widgetFactory, final ScreenChanger screenChanger, final ScreenSize screenSize, final MouseInput mouseInput, final Batch batch, final CountryCounter countryCounter, final MBassador<Event> eventBus) { super(widgetFactory, screenChanger, screenSize, mouseInput, batch, eventBus); Arguments.checkIsNotNull(widgetFactory, "widgetFactory"); Arguments.checkIsNotNull(countryCounter, "countryCounter"); this.widgetFactory = widgetFactory; this.countryCounter = countryCounter; errorDialog = createErrorDialog();/*from w ww . jav a2 s. c o m*/ addTitle(TITLE_TEXT, Align.bottomLeft, 40); addSubTitle(SUBTITLE_TEXT); playerNameTextField = widgetFactory.createPlayerNameTextField(); clanAcronymTextField = widgetFactory.createClanAcronymTextField(); serverNameTextField = widgetFactory.createServerNameTextField(); clanAcronymCheckBox = widgetFactory.createClanAcronymCheckBox(new ChangeListener() { @Override public void changed(final ChangeEvent event, final Actor actor) { clanAcronymTextField.setText(clanAcronymCheckBox.isChecked() ? clanAcronymTextField.getText() : ""); clanAcronymTextField.setDisabled(!clanAcronymCheckBox.isChecked()); } }); clanAcronymCheckBox.setChecked(!clanAcronymTextField.getText().isEmpty()); clanAcronymTextField.setDisabled(!clanAcronymCheckBox.isChecked()); // @formatter:off humanPlayerLimitLabel = widgetFactory .createPlayerLimitLabel(String.valueOf(InputSettings.INITIAL_CLASSIC_MODE_HUMAN_PLAYER_LIMIT)); aiPlayerLimitLabel = widgetFactory .createPlayerLimitLabel(String.valueOf(InputSettings.INITIAL_CLASSIC_MODE_AI_PLAYER_LIMIT)); playMapNameLabel = widgetFactory.createPlayMapNameLabel(); totalCountryCount = calculateCurrentPlayMapTotalCountryCount(); // @formatter:on customizeHumanPlayersButton = widgetFactory .createCustomizePlayersButton(new ClickListener(Input.Buttons.LEFT) { @Override public void clicked(final InputEvent event, final float x, final float y) { // TODO Show Players Dialog. updateHumanPlayerLimit(); updateWinPercentSelectBoxItems(); } }); customizeAiPlayersButton = widgetFactory .createCustomizePlayersButton(new ClickListener(Input.Buttons.LEFT) { @Override public void clicked(final InputEvent event, final float x, final float y) { // TODO Show Players Dialog. updateAiPlayerLimit(); updateWinPercentSelectBoxItems(); } }); customizePlayMapButton = widgetFactory.createCustomizePlayMapButton(new ClickListener(Input.Buttons.LEFT) { @Override public void clicked(final InputEvent event, final float x, final float y) { // TODO Show Play Map Dialog. // TODO Add refresh button to Play Map Dialog to re-load play maps. playMaps = loadPlayMaps(); currentPlayMap = nextPlayMap(); playMapNameLabel.setText(currentPlayMap.getName()); totalCountryCount = calculateCurrentPlayMapTotalCountryCount(); updateWinPercentSelectBoxItems(); } }); // @formatter:off spectatorLimitSelectBox = widgetFactory.createSpectatorsSelectBox(); final Array<Integer> spectatorLimits = new Array<>( ClassicGameRules.MAX_SPECTATORS - ClassicGameRules.MIN_SPECTATORS + 1); for (int i = ClassicGameRules.MIN_SPECTATORS; i <= ClassicGameRules.MAX_SPECTATORS; ++i) { spectatorLimits.add(i); } spectatorLimitSelectBox.setItems(spectatorLimits); spectatorLimitSelectBox.setSelected(InputSettings.INITIAL_SPECTATOR_LIMIT); // @formatter:off // @formatter:on initialCountryAssignmentSelectBox = widgetFactory.createInitialCountryAssignmentSelectBox(); final Array<String> initialCountryAssignments = new Array<>(InitialCountryAssignment.count()); for (final InitialCountryAssignment initialCountryAssignment : InitialCountryAssignment.values()) { initialCountryAssignments.add(Strings.toProperCase(initialCountryAssignment.name())); } initialCountryAssignmentSelectBox.setItems(initialCountryAssignments); initialCountryAssignmentSelectBox .setSelected(Strings.toProperCase(InputSettings.INITIAL_CLASSIC_MODE_COUNTRY_ASSIGNMENT.name())); // @formatter:on winPercentSelectBox = widgetFactory.createWinPercentSelectBox(); updateWinPercentSelectBoxItems(); selectInitialWinPercentItem(); // @formatter:off playerSettingsSectionTitleLabel = widgetFactory.createPlayerSettingsSectionTitleLabel(); playerNameSettingLabel = widgetFactory.createPlayerNameSettingLabel(); clanTagSettingLabel = widgetFactory.createClanTagSettingLabel(); gameSettingsSectionTitleLabel = widgetFactory.createGameSettingsSectionTitleLabel(); serverNameSettingLabel = widgetFactory.createMenuSettingLabel(SERVER_NAME_SETTING_LABEL_TEXT); humanPlayerLimitSettingLabel = widgetFactory.createMenuSettingLabel(HUMAN_PLAYERS_SETTING_LABEL_TEXT); aiPlayerLimitSettingLabel = widgetFactory.createMenuSettingLabel(AI_PLAYERS_SETTING_LABEL_TEXT); spectatorLimitSettingLabel = widgetFactory.createMenuSettingLabel(SPECTATORS_SETTING_SETTING_LABEL_TEXT); playMapSettingLabel = widgetFactory.createMenuSettingLabel(PLAY_MAP_SETTING_LABEL_TEXT); winPercentSettingLabel = widgetFactory.createMenuSettingLabel(WIN_PERCENT_SETTING_LABEL_TEXT); initialCountryAssignmentSettingLabel = widgetFactory .createMenuSettingLabel(INITIAL_COUNTRY_ASSIGNMENT_SETTING_LABEL_TEXT); // @formatter:on final VerticalGroup verticalGroup = new VerticalGroup(); verticalGroup.align(Align.topLeft); final Table playerSettingsTable = new Table().top().left(); playerSettingsTable.add().height(23); playerSettingsTable.row(); playerSettingsTable.add(playerSettingsSectionTitleLabel).size(540, 40).fill().padLeft(60).left(); playerSettingsTable.row(); final Table playerNameTable = new Table(); playerNameTable.add(playerNameSettingLabel).size(150, 40).fill().padLeft(90).left().spaceRight(10); playerNameTable.add(playerNameTextField).size(270, 28).fill().left().spaceLeft(10); playerSettingsTable.add(playerNameTable).left(); playerSettingsTable.row(); final Table clanTable = new Table(); clanTable.add(clanTagSettingLabel).size(150, 40).fill().padLeft(90).left().spaceRight(10); clanTable.add(clanAcronymCheckBox).size(20, 20).fill().left().spaceLeft(10).spaceRight(8); clanTable.add(clanAcronymTextField).size(80, 28).fill().left().spaceLeft(8); playerSettingsTable.add(clanTable).left(); verticalGroup.addActor(playerSettingsTable); final Table gameSettingsTable = new Table().top().left(); gameSettingsTable.row(); gameSettingsTable.add().height(20); gameSettingsTable.row(); gameSettingsTable.add(gameSettingsSectionTitleLabel).size(540, 40).fill().padLeft(60).left(); gameSettingsTable.row(); final Table serverNameTable = new Table(); serverNameTable.add(serverNameSettingLabel).size(150, 40).fill().padLeft(90).left().spaceRight(10); serverNameTable.add(serverNameTextField).size(270, 28).fill().left().spaceLeft(10); gameSettingsTable.add(serverNameTable).left(); gameSettingsTable.row(); final Table playMapTable = new Table(); playMapTable.add(playMapSettingLabel).size(150, 40).fill().padLeft(90).left().spaceRight(10); playMapTable.add(playMapNameLabel).size(238, 28).fill().left().spaceLeft(10).spaceRight(4); playMapTable.add(customizePlayMapButton).size(28, 28).fill().left().spaceLeft(4); gameSettingsTable.add(playMapTable).left(); gameSettingsTable.row(); final Table humanPlayersTable = new Table(); humanPlayersTable.add(humanPlayerLimitSettingLabel).size(150, 40).fill().padLeft(90).left().spaceRight(10); humanPlayersTable.add(humanPlayerLimitLabel).size(76, 28).fill().left().spaceLeft(10).spaceRight(4); humanPlayersTable.add(customizeHumanPlayersButton).size(28, 28).fill().left().spaceLeft(4); gameSettingsTable.add(humanPlayersTable).left(); gameSettingsTable.row(); final Table aiPlayersTable = new Table(); aiPlayersTable.add(aiPlayerLimitSettingLabel).size(150, 40).fill().padLeft(90).left().spaceRight(10); aiPlayersTable.add(aiPlayerLimitLabel).size(76, 28).fill().left().spaceLeft(10).spaceRight(4); aiPlayersTable.add(customizeAiPlayersButton).size(28, 28).fill().left().spaceLeft(4); gameSettingsTable.add(aiPlayersTable).left(); gameSettingsTable.row(); final Table spectatorsTable = new Table(); spectatorsTable.add(spectatorLimitSettingLabel).size(150, 40).fill().padLeft(90).left().spaceRight(10); spectatorsTable.add(spectatorLimitSelectBox).size(108, 28).fill().left().spaceLeft(10); gameSettingsTable.add(spectatorsTable).left(); gameSettingsTable.row(); final Table winPercentTable = new Table(); winPercentTable.add(winPercentSettingLabel).size(150, 40).fill().padLeft(90).left().spaceRight(10); winPercentTable.add(winPercentSelectBox).size(108, 28).fill().left().spaceLeft(10); gameSettingsTable.add(winPercentTable).left(); gameSettingsTable.row(); // @formatter:off final Table initialCountryAssignmentTable = new Table(); initialCountryAssignmentTable.add(initialCountryAssignmentSettingLabel).size(150, 40).fill().padLeft(90) .left().spaceRight(10); initialCountryAssignmentTable.add(initialCountryAssignmentSelectBox).size(108, 28).fill().left() .spaceLeft(10); gameSettingsTable.add(initialCountryAssignmentTable).left(); // @formatter:on verticalGroup.addActor(gameSettingsTable); addContent(verticalGroup); addBackButton(new ClickListener(Input.Buttons.LEFT) { @Override public void clicked(final InputEvent event, final float x, final float y) { contractMenuBar(new Runnable() { @Override public void run() { toScreen(ScreenId.CLASSIC_GAME_MODE_MENU); } }); } }); forwardButton = addForwardButton(FORWARD_BUTTON_TEXT, new ChangeListener() { @Override public void changed(final ChangeEvent event, final Actor actor) { if (currentPlayMap.equals(PlayMapMetadata.NULL)) { errorDialog.setMessage(new DefaultMessage("Please select a valid map before continuing.")); errorDialog.show(); return; } final String playerName = playerNameTextField.getText(); if (!GameSettings.isValidPlayerNameWithoutClanTag(playerName)) { errorDialog.setMessage(new DefaultMessage( Strings.format("Invalid player name: \'{}\'\n\nValid player name rules:\n\n{}", playerName, GameSettings.VALID_PLAYER_NAME_DESCRIPTION))); errorDialog.show(); return; } final String clanAcronym = clanAcronymTextField.getText(); if (!clanAcronymTextField.isDisabled() && !GameSettings.isValidHumanClanAcronym(clanAcronym)) { errorDialog.setMessage(new DefaultMessage( Strings.format("Invalid clan tag: \'{}\'\n\nValid clan tag rules:\n\n{}", clanAcronym, GameSettings.VALID_CLAN_ACRONYM_DESCRIPTION))); errorDialog.show(); return; } final String playerNameWithOptionalClanTag = GameSettings .getHumanPlayerNameWithOptionalClanTag(playerName, clanAcronym); final int humanPlayerLimit = getHumanPlayerLimit(); final int aiPlayerLimit = getAiPlayerLimit(); final int spectatorLimit = getSpectatorLimit(); final int winPercent = winPercentSelectBox.getSelected(); final InitialCountryAssignment initialCountryAssignment = InitialCountryAssignment .valueOf(Strings.toCase(initialCountryAssignmentSelectBox.getSelected(), LetterCase.UPPER)); final PersonLimits personLimits = PersonLimits.builder().humanPlayers(humanPlayerLimit) .aiPlayers(aiPlayerLimit).spectators(spectatorLimit).build(); final GameRules gameRules = GameRulesFactory.create(GameMode.CLASSIC, personLimits, winPercent, totalCountryCount, initialCountryAssignment); final GameConfiguration gameConfig = new DefaultGameConfiguration(GameMode.CLASSIC, currentPlayMap, gameRules); final String serverName = serverNameTextField.getText(); if (!NetworkSettings.isValidServerName(serverName)) { errorDialog.setMessage(new DefaultMessage( Strings.format("Invalid server name: \'{}\'\n\nValid server name rules:\n\n{}", serverName, NetworkSettings.VALID_SERVER_NAME_DESCRIPTION))); errorDialog.show(); return; } toScreen(ScreenId.MENU_TO_PLAY_LOADING); // The menu-to-play loading screen is now active & can therefore receive events. publishAsync(new CreateGameEvent(serverName, gameConfig, playerNameWithOptionalClanTag)); } }); }
From source file:com.forerunnergames.peril.client.ui.screens.menus.modes.classic.joingame.ClassicGameModeJoinGameMenuScreen.java
License:Open Source License
public ClassicGameModeJoinGameMenuScreen(final MenuScreenWidgetFactory widgetFactory, final ScreenChanger screenChanger, final ScreenSize screenSize, final MouseInput mouseInput, final Batch batch, final MBassador<Event> eventBus) { super(widgetFactory, screenChanger, screenSize, mouseInput, batch, eventBus); Arguments.checkIsNotNull(widgetFactory, "widgetFactory"); this.widgetFactory = widgetFactory; errorDialog = createErrorDialog();//from w w w . j av a2 s . co m addTitle("JOIN GAME", Align.bottomLeft, 40); addSubTitle("CLASSIC MODE"); playerNameTextField = widgetFactory.createPlayerNameTextField(); clanAcronymTextField = widgetFactory.createClanAcronymTextField(); serverAddressTextField = widgetFactory.createServerAddressTextField(); clanAcronymCheckBox = widgetFactory.createClanAcronymCheckBox(new ChangeListener() { @Override public void changed(final ChangeEvent event, final Actor actor) { clanAcronymTextField.setText(clanAcronymCheckBox.isChecked() ? clanAcronymTextField.getText() : ""); clanAcronymTextField.setDisabled(!clanAcronymCheckBox.isChecked()); } }); clanAcronymCheckBox.setChecked(!clanAcronymTextField.getText().isEmpty()); clanAcronymTextField.setDisabled(!clanAcronymCheckBox.isChecked()); playerSettingsSectionTitleLabel = widgetFactory.createPlayerSettingsSectionTitleLabel(); playerNameSettingLabel = widgetFactory.createPlayerNameSettingLabel(); clanTagSettingLabel = widgetFactory.createClanTagSettingLabel(); gameSettingsSectionTitleLabel = widgetFactory.createGameSettingsSectionTitleLabel(); serverAddressSettingLabel = widgetFactory.createMenuSettingLabel("Server Address"); final VerticalGroup verticalGroup = new VerticalGroup(); verticalGroup.align(Align.topLeft); // @formatter:off final Table playerSettingsTable = new Table().top().left(); playerSettingsTable.add().height(23).colspan(5); playerSettingsTable.row(); playerSettingsTable.add(playerSettingsSectionTitleLabel).size(538, 42).fill().padLeft(60).padRight(60) .left().colspan(5); playerSettingsTable.row(); playerSettingsTable.add(playerNameSettingLabel).size(150, 40).fill().padLeft(90).left().spaceRight(10); playerSettingsTable.add(playerNameTextField).size(204, 28).fill().left().colspan(3).spaceLeft(10); playerSettingsTable.add().expandX().fill(); playerSettingsTable.row(); playerSettingsTable.add(clanTagSettingLabel).size(150, 40).fill().padLeft(90).left().spaceRight(10); playerSettingsTable.add(clanAcronymCheckBox).size(18, 18).fill().left().spaceLeft(10).spaceRight(10); playerSettingsTable.add(clanAcronymTextField).size(74, 28).fill().left().spaceLeft(10); playerSettingsTable.add().width(102).fill(); playerSettingsTable.add().expandX().fill(); verticalGroup.addActor(playerSettingsTable); // @formatter:on // @formatter:off final Table gameSettingsTable = new Table().top().left(); gameSettingsTable.row(); gameSettingsTable.add().height(18).colspan(3); gameSettingsTable.row(); gameSettingsTable.add(gameSettingsSectionTitleLabel).size(538, 42).fill().padLeft(60).padRight(60).left() .colspan(3); gameSettingsTable.row(); gameSettingsTable.add(serverAddressSettingLabel).size(150, 40).fill().padLeft(90).left().spaceRight(10); gameSettingsTable.add(serverAddressTextField).size(204, 28).fill().left().spaceLeft(10); gameSettingsTable.add().expandX().fill(); verticalGroup.addActor(gameSettingsTable); // @formatter:on addContent(verticalGroup); addBackButton(new ClickListener(Input.Buttons.LEFT) { @Override public void clicked(final InputEvent event, final float x, final float y) { contractMenuBar(new Runnable() { @Override public void run() { toScreen(ScreenId.CLASSIC_GAME_MODE_MENU); } }); } }); forwardButton = addForwardButton("JOIN GAME", new ChangeListener() { @Override public void changed(final ChangeEvent event, final Actor actor) { final String playerName = playerNameTextField.getText(); if (!GameSettings.isValidPlayerNameWithoutClanTag(playerName)) { errorDialog.setMessage(new DefaultMessage( Strings.format("Invalid player name: \'{}\'\n\nValid player name rules:\n\n{}", playerName, GameSettings.VALID_PLAYER_NAME_DESCRIPTION))); errorDialog.show(); return; } final String clanAcronym = clanAcronymTextField.getText(); if (!clanAcronymTextField.isDisabled() && !GameSettings.isValidHumanClanAcronym(clanAcronym)) { errorDialog.setMessage(new DefaultMessage( Strings.format("Invalid clan tag: \'{}\'\n\nValid clan tag rules:\n\n{}", clanAcronym, GameSettings.VALID_CLAN_ACRONYM_DESCRIPTION))); errorDialog.show(); return; } final String playerNameWithOptionalClanTag = GameSettings .getHumanPlayerNameWithOptionalClanTag(playerName, clanAcronym); final String serverAddress = serverAddressTextField.getText(); if (!NetworkSettings.isValidServerAddress(serverAddress)) { errorDialog.setMessage(new DefaultMessage( Strings.format("Invalid server address: \'{}\'\n\nValid server address rules:\n\n{}", serverAddress, NetworkSettings.VALID_SERVER_ADDRESS_DESCRIPTION))); errorDialog.show(); return; } toScreen(ScreenId.MENU_TO_PLAY_LOADING); // The menu-to-play loading screen is now active & can therefore receive events. publishAsync(new JoinGameEvent(playerNameWithOptionalClanTag, serverAddress)); } }); }
From source file:com.jmolina.orb.widgets.ui.Credit.java
License:Open Source License
/** * Constructor/*from w ww . j a va 2s .c o m*/ * * @param am AssetManager * @param header Encabezado * @param body Texto descriptivo */ public Credit(AssetManager am, String header, String body) { super(am); links = new ArrayList<Label>(); Label.LabelStyle bodyStyle = new Label.LabelStyle(); bodyStyle.fontColor = new Color(Var.COLOR_LILAC_DARK); bodyStyle.font = new BitmapFont(Gdx.files.internal(Font.FONT_ROBOTO_REGULAR_30), findRegion(Atlas.FONT_ROBOTO_REGULAR_30)); Label.LabelStyle headerStyle = new Label.LabelStyle(); headerStyle.fontColor = new Color(Var.COLOR_GREEN_DARK); headerStyle.font = new BitmapFont(Gdx.files.internal(Font.FONT_ROBOTO_MEDIUM_45), findRegion(Atlas.FONT_ROBOTO_MEDIUM_45)); this.body = new Label(body, bodyStyle); this.body.setTouchable(Touchable.disabled); this.body.setPosition(0f, 0f); this.body.setWidth(Utils.cell(10)); this.body.setWrap(true); this.body.setAlignment(Align.topLeft); this.body.setHeight(this.body.getPrefHeight()); this.header = new Label(header, headerStyle); this.header.setTouchable(Touchable.disabled); this.header.setPosition(0f, this.body.getPrefHeight()); this.header.setSize(Utils.cell(10), Utils.cell(1)); this.header.setAlignment(Align.topLeft); addActor(this.header); addActor(this.body); setHeight(this.header.getPrefHeight() + this.body.getPrefHeight()); }
From source file:com.nhydock.storymode.scenes.title.TitleSequence.java
@Override public void init() { final TitleSequence ui = this; // create title sequence final Skin skin = manager.get(DataDirs.Home + "title.json", Skin.class); final Skin uiskin = shared.getResource(DataDirs.Home + "uiskin.json", Skin.class); //clouds/* w w w. j av a 2s . co m*/ { Image goddess = new Image(uiskin, "goddess"); goddess.setSize(32, 32); goddess.setPosition(getWidth(), getHeight() - 96f); goddess.setOrigin(Align.center); addActor(goddess); Image cloudsPan1 = new Image(new TiledDrawable(uiskin.getRegion("clouds"))); Image cloudsPan2 = new Image(new TiledDrawable(uiskin.getRegion("clouds"))); cloudsPan1.setWidth(getWidth() * 5); cloudsPan2.setWidth(getWidth() * 5); cloudsPan1.setPosition(0, 0, Align.topLeft); cloudsPan2.setPosition(0, 0, Align.topLeft); addActor(cloudsPan1); addActor(cloudsPan2); cloudsPan1.addAction(Actions.sequence(Actions.moveToAligned(getWidth(), 0, Align.topRight), Actions.delay(10f), Actions.parallel(Actions.moveBy(0, 140f, 3f, Interpolation.sineOut), Actions.moveBy(getWidth() * 5, 0, 50f)))); cloudsPan2.addAction(Actions.sequence(Actions.moveToAligned(getWidth(), 0, Align.topRight), Actions.delay(10f), Actions.parallel(Actions.moveBy(0, 80f, 3f, Interpolation.sineOut), Actions.moveBy(getWidth() * 5, 0, 40f)))); goddess.addAction(Actions.sequence(Actions.delay(20f), Actions.parallel(Actions.repeat(5, Actions.rotateBy(360, .4f)), Actions.moveBy(-getWidth() - 32, 0f, 2f)), Actions.delay(1f), Actions.addAction(Actions.moveBy(0, getHeight(), 1f, Interpolation.sineIn), cloudsPan1), Actions.addAction(Actions.moveBy(0, getHeight(), 1f, Interpolation.sineIn), cloudsPan2))); } // initial text { Table textGrid = new Table(); textGrid.setFillParent(true); textGrid.pad(40f); Label text = new Label( "This game is Shareware!\n\nThat means it's completely free to download and distribute.\n\nIf you'd like to be nice, you can donate and learn more at http://nhydock.github.io/Storymode", skin); text.setWrap(true); text.setAlignment(Align.center); text.addAction(Actions.sequence(Actions.alpha(0f), Actions.alpha(1f, 1f))); textGrid.add(text).expandX().fillX(); text = new Label("~Thanks a bunch!", skin); text.setWrap(true); text.setAlignment(Align.right); text.addAction(Actions.sequence(Actions.alpha(0f), Actions.delay(3f), Actions.alpha(1f, 1f))); textGrid.row(); textGrid.add(text).expandX().fillX().padRight(60f); textGrid.addAction(Actions.sequence(Actions.alpha(1f), Actions.delay(8f), Actions.alpha(0f, 2f), Actions.run(new PlayBGM(manager.get(DataDirs.Audio + "title.mp3", Music.class))))); addActor(textGrid); } // credits animation { Table textGrid = new Table(); textGrid.setFillParent(true); textGrid.pad(40f); Label text = new Label("Graphics, Programming, Project Lead", skin); text.setAlignment(Align.center); textGrid.add(text).expandX().fillX(); textGrid.row(); text = new Label("Nicholas Hydock", skin); text.setAlignment(Align.center); textGrid.add(text).expandX().fillX(); textGrid.row(); text = new Label(" ", skin); text.setAlignment(Align.center); textGrid.add(text).expandX().fillX(); textGrid.row(); text = new Label("Ideas, Suggestions, Emotional Support, & Bros4Lyfe", skin); text.setAlignment(Align.center); textGrid.add(text).expandX().fillX(); textGrid.row(); text = new Label("Patrick Flanagan", skin); text.setAlignment(Align.center); textGrid.add(text).expandX().fillX(); textGrid.row(); text = new Label("Matthew Hydock", skin); text.setAlignment(Align.center); textGrid.add(text).expandX().fillX(); textGrid.row(); text = new Label("Andrew Hoffman", skin); text.setAlignment(Align.center); textGrid.add(text).expandX().fillX(); textGrid.addAction(Actions.sequence(Actions.alpha(0f), Actions.delay(10f), Actions.alpha(1f, .75f), Actions.delay(4f), Actions.alpha(0f, .75f))); addActor(textGrid); } // display tool logos { Group group = new Group(); Image tools = new Image(skin.getDrawable("tools")); tools.setPosition(getWidth() / 2 - tools.getWidth() / 2, getHeight() / 2 - tools.getHeight() / 2); Label label = new Label( "All music is licensed under Creative-Commons BY(-NC) or other permissive licenses.\nAll attribution can be found in the README", skin, "small"); label.setPosition(getWidth() / 2f, getHeight() / 2f - 80f, Align.top); label.setAlignment(Align.center); group.addActor(tools); group.addActor(label); group.addAction(Actions.sequence(Actions.alpha(0f), Actions.delay(16f), Actions.alpha(1f, .75f), Actions.delay(4f), Actions.alpha(0f, .75f))); addActor(group); } // cool animation { Group cool = new Group(); cool.setSize(getWidth(), getHeight()); Group group = new Group(); Image cliff = new Image(skin.getRegion("cliff")); group.addAction(Actions.sequence(Actions.moveTo(0, -cliff.getHeight()), Actions.delay(24f), Actions.moveTo(0, 0, 4f))); group.addActor(cliff); final Image character = new Image(skin.getRegion("back")); character.setSize(96f, 96f); group.addActor(character); character.addAction( Actions.sequence(Actions.moveTo(200f, 200f), Actions.delay(31f), Actions.run(new Runnable() { @Override public void run() { character.setDrawable(skin.getDrawable("character")); } }), Actions.moveTo(-character.getWidth() / 2, -character.getHeight(), 1f), Actions.delay(10f), Actions.run(new Runnable() { @Override public void run() { character.setDrawable(skin.getDrawable("back")); } }), Actions.moveTo(200f, 200f, 1f), Actions.delay(.2f), Actions.run(new Runnable() { @Override public void run() { character.setDrawable(skin.getDrawable("character")); } }))); Image castle = new Image(skin.getRegion("castle")); castle.addAction( Actions.sequence(Actions.moveToAligned(getWidth() - castle.getWidth(), 0f, Align.topLeft), Actions.delay(24f), Actions.moveBy(0, getHeight(), 4f))); Image lightning = new Image(skin.getRegion("lightning")); lightning.setPosition(getWidth() - castle.getWidth(), getHeight() - castle.getHeight()); lightning.addAction(Actions.sequence(Actions.alpha(0f), Actions.delay(29f), Actions.alpha(1f, .1f), Actions.delay(.3f), Actions.alpha(.3f, .3f), Actions.alpha(1f, .1f), Actions.delay(.3f), Actions.alpha(0f, 1f))); Image logo = new Image(skin.getRegion("logo")); logo.addAction(Actions.sequence(Actions.alpha(0f), Actions.moveTo(0, getHeight() - logo.getHeight() + 5f), Actions.delay(34f), Actions.alpha(1f, 1f), Actions.forever(Actions.sequence(Actions.moveTo(0, getHeight() - logo.getHeight() + 5f, 2f), Actions.moveTo(0, getHeight() - logo.getHeight() - 5f, 2f))))); Table table = new Table(); Label label = new Label("Title theme", skin, "small"); label.setAlignment(Align.right); table.add(label).expandX().fillX(); table.row(); label = new Label("Anamanaguchi - Helix Nebula", skin, "small"); label.setAlignment(Align.right); table.add(label).expandX().fillX(); table.row(); table.pad(10f); table.pack(); table.addAction(Actions.sequence(Actions.alpha(0f), Actions.moveTo(getWidth() - table.getWidth(), 0), Actions.delay(40f), Actions.alpha(1f, 1f))); cool.addActor(castle); cool.addActor(lightning); cool.addActor(group); cool.addActor(logo); cool.addActor(table); cool.addAction(Actions.sequence(Actions.alpha(0f), Actions.delay(24f), Actions.alpha(1f), Actions.delay(40f), Actions.alpha(0f, 1f), Actions.delay(1f), Actions.run(new Runnable() { @Override public void run() { SceneManager.switchToScene("title"); } }), Actions.delay(1.5f), Actions.run(new Runnable() { @Override public void run() { } }))); addActor(cool); final Label startLabel = new Label("Press Start", skin); startLabel.setPosition(getWidth() - 360f, 120f); startLabel.addAction(Actions.sequence(Actions.alpha(0f), Actions.delay(38f), Actions.alpha(1f, .3f), Actions.run(new Runnable() { @Override public void run() { ui.addListener(new InputListener() { @Override public boolean touchDown(InputEvent evt, float x, float y, int pointer, int button) { if (button == Buttons.LEFT) { SceneManager.switchToScene("newgame"); return true; } return false; } }); } }), Actions.delay(24f), Actions.alpha(0f, 1f))); addActor(startLabel); } // make sure all initial steps are set act(); addListener(new InputListener() { @Override public boolean keyDown(InputEvent evt, int keycode) { // skip the intro if (Input.ACCEPT.match(keycode) || Input.CANCEL.match(keycode)) { SceneManager.switchToScene("newgame"); return true; } return false; } @Override public boolean touchDown(InputEvent evt, float x, float y, int pointer, int button) { if (button == Buttons.RIGHT) { SceneManager.switchToScene("newgame"); return true; } return false; } }); }
From source file:com.prisonbreak.game.MapControlRenderer.java
private void loseGame() { // set state to PAUSE state = STATE.PAUSE;/* w w w.ja v a 2s . c o m*/ // notify Player dialogBoxLabel = new Label("Ouch!!! You have been found.", PrisonBreakGame.gameSkin, "custom"); dialogBoxLabel.setPosition(0, 0); dialogBoxLabel.setSize(Gdx.graphics.getWidth(), Gdx.graphics.getHeight() / 5); dialogBoxLabel.setAlignment(Align.topLeft); dialogBoxLabel.addListener(new InputListener() { @Override public boolean keyDown(InputEvent event, int keycode) { if (keycode == Keys.F) { state = STATE.LOSE; dialogBoxLabel.remove(); resetInputProcessor(); } return true; } }); stage.addActor(dialogBoxLabel); stage.setKeyboardFocus(dialogBoxLabel); Gdx.input.setInputProcessor(stage); }
From source file:com.prisonbreak.game.MapControlRenderer.java
private void showHideInventory() { // create an array of names of Player's items Array<String> names = new Array<String>(); if (player.getInventory().size == 0) { names.add("Nothing"); } else {/*from www. java 2 s .com*/ for (Item item : player.getInventory()) { names.add(item.getItemName()); } } // create the List panel to display the inventory inventory = new List(PrisonBreakGame.gameSkin, "dimmed"); inventory.setItems(names); inventory.setSelectedIndex(0); inventory.setSize(Gdx.graphics.getWidth() / 6, Gdx.graphics.getHeight() / 2); inventory.setPosition(Gdx.graphics.getWidth() * 3 / 4 - inventory.getWidth() / 2, Gdx.graphics.getHeight() / 2 - inventory.getHeight() / 2); // create the description Label to display description of each item descLabel = new Label("", PrisonBreakGame.gameSkin, "custom-small"); descLabel.setSize(Gdx.graphics.getWidth() / 6, Gdx.graphics.getHeight() / 4); descLabel.setPosition(inventory.getX() + inventory.getWidth(), inventory.getY() + inventory.getHeight() - descLabel.getHeight()); descLabel.setAlignment(Align.topLeft); descLabel.setWrap(true); if (player.getInventory().size > 0) { descLabel.setText(player.getInventory().get(inventory.getSelectedIndex()).getDescription()); } stage.addActor(descLabel); // create title: Inventory titleLabel = new Label("INVENTORY", PrisonBreakGame.gameSkin, "subtitle"); titleLabel.setSize(inventory.getWidth(), titleLabel.getHeight() * 3 / 2); titleLabel.setPosition(inventory.getX(), inventory.getY() + inventory.getHeight()); titleLabel.setAlignment(Align.center); stage.addActor(titleLabel); // add InputListener to inventory inventory.addListener(new InputListener() { @Override public boolean keyDown(InputEvent event, int keycode) { int currentIndex = inventory.getSelectedIndex(); int upIndex = currentIndex - 1; int downIndex = currentIndex + 1; String desc = ""; if (upIndex < 0) upIndex = inventory.getItems().size - 1; if (downIndex >= inventory.getItems().size) downIndex = 0; switch (keycode) { case Keys.UP: // scroll up the item objectItems inventory.setSelectedIndex(upIndex); // display the corresponding description in descLabel if (player.getInventory().size > 0) desc = player.getInventory().get(upIndex).getDescription(); descLabel.setText(desc); break; case Keys.DOWN: // scroll down the item objectItems inventory.setSelectedIndex(downIndex); // display the corresponding description in descLabel if (player.getInventory().size > 0) desc = player.getInventory().get(downIndex).getDescription(); descLabel.setText(desc); break; case Keys.I: // if the inventory is currently opened, press I again // to close descLabel.remove(); // remove actors inventory.remove(); titleLabel.remove(); state = STATE.ONGOING; // unpause the game resetInputProcessor(); // reset InputProcessor to this MapControlRenderer break; default: break; } return true; } }); stage.addActor(inventory); stage.setKeyboardFocus(inventory); Gdx.input.setInputProcessor(stage); // change InputProcessor to stage }
From source file:com.prisonbreak.game.MapControlRenderer.java
private void searchInteraction() { // if no items if (objectItems == null) { if (indexForMessageTree == messageTree.get(0).size) { state = STATE.ONGOING; // unpause the game interactHappen = false; // flip the flag again typeInteraction = TYPE_INTERACTION.NO_INTERACTION; // reset type of interaction to // NO_INTERACTION indexForMessageTree = 0;/*from w ww . j a v a 2 s. co m*/ dialogBoxLabel.remove(); return; } // create conversation box // for the first message if (indexForMessageTree == 0) { dialogBoxLabel = new Label(messageTree.get(0).get(0), PrisonBreakGame.gameSkin, "custom"); dialogBoxLabel.setPosition(0, 0); dialogBoxLabel.setSize(Gdx.graphics.getWidth(), Gdx.graphics.getHeight() / 5); dialogBoxLabel.setAlignment(Align.topLeft); // dialogBoxLabel.setFontScale(2f); stage.addActor(dialogBoxLabel); } // for every next message else { dialogBoxLabel.setText(messageTree.get(0).get(indexForMessageTree)); } ++indexForMessageTree; // increment index } // if it does contain items else { // Gdx.app.log("class: ", "" + objectItems.getClass()); if (indexForMessageTree == messageTree.get(1).size) { state = STATE.ONGOING; // unpause the game interactHappen = false; // flip the flag again typeInteraction = TYPE_INTERACTION.NO_INTERACTION; // reset type of interaction to // NO_INTERACTION indexForMessageTree = 0; dialogBoxLabel.remove(); return; } // in case Player choose "Nothing" -> does not pick anything if (indexForMessageTree > messageTree.get(1).size) { indexForMessageTree = messageTree.get(1).size; return; } // for the first message if (indexForMessageTree == 0) { // create a String array of items' names Array<String> itemNames = new Array<String>(); for (Item item : objectItems) { itemNames.add(item.getItemName()); } itemNames.add("Nothing"); // add additional value - for not choosing any items // create conversation box dialogBoxLabel = new Label(messageTree.get(1).get(0), PrisonBreakGame.gameSkin, "custom"); dialogBoxLabel.setPosition(0, 0); dialogBoxLabel.setSize(Gdx.graphics.getWidth(), Gdx.graphics.getHeight() / 5); dialogBoxLabel.setAlignment(Align.topLeft); // dialogBoxLabel.setFontScale(2f); stage.addActor(dialogBoxLabel); // create objectItems of items itemList = new List(PrisonBreakGame.gameSkin, "custom"); itemList.setItems(itemNames); itemList.setSelectedIndex(0); itemList.setSize(Gdx.graphics.getWidth() / 4, Gdx.graphics.getHeight() / 3); itemList.setPosition(Gdx.graphics.getWidth() - itemList.getWidth(), dialogBoxLabel.getHeight()); itemList.addListener(new InputListener() { @Override public boolean keyDown(InputEvent event, int keycode) { int currentIndex = itemList.getSelectedIndex(); int upIndex = currentIndex - 1; int downIndex = currentIndex + 1; if (upIndex < 0) upIndex = itemList.getItems().size - 1; if (downIndex >= itemList.getItems().size) downIndex = 0; // Gdx.app.log("currentIndex: ", "" + currentIndex); // Gdx.app.log("upIndex: ", "" + upIndex); // Gdx.app.log("downIndex: ", "" + downIndex); switch (keycode) { case Keys.UP: // scroll up the item list itemList.setSelectedIndex(upIndex); break; case Keys.DOWN: // scroll down the item list itemList.setSelectedIndex(downIndex); break; case Keys.F: int index = itemList.getSelectedIndex(); // if Player chooses "Nothing" if ("Nothing".equals((String) itemList.getSelected())) { // remove list of items from stage itemList.remove(); // confirm the selection dialogBoxLabel.setText("You choose nothing."); // end the "conversation" indexForMessageTree = messageTree.get(1).size + 1; resetInputProcessor(); break; } // otherwise; // add the chosen item into Player's objectItems of items player.addItem(objectItems.get(index)); // remove that item from the overall listItems objectItems.removeIndex(index); // remove list of items from stage itemList.remove(); // reconfirm message dialogBoxLabel.setText(messageTree.get(1).get(indexForMessageTree)); resetInputProcessor(); break; default: break; } return true; } }); stage.addActor(itemList); stage.setKeyboardFocus(itemList); // set InputProcessor to stage Gdx.input.setInputProcessor(stage); } // for every next message else { dialogBoxLabel.setText(messageTree.get(1).get(indexForMessageTree) + player.getInventory().get(player.getInventory().size - 1).getItemName() + "."); } ++indexForMessageTree; // increment index } }
From source file:com.prisonbreak.game.MapControlRenderer.java
private void openLockInteraction() { if (objectItems == null) { Gdx.app.log("Error in locked door: ", "objectItems == null"); return;/*from w w w.j av a2 s . c o m*/ } // if the door is locked if (latestDoorLocked) { // end of "conversation" -> reset if (indexForMessageTree == messageTree.get(2).size) { state = STATE.ONGOING; interactHappen = false; typeInteraction = TYPE_INTERACTION.NO_INTERACTION; indexForMessageTree = 0; neededKey = null; latestDoorLocked = false; // latestObjectName = ""; dialogBoxLabel.remove(); return; } // first if (indexForMessageTree == 0) { // create conversation box dialogBoxLabel = new Label(messageTree.get(2).get(0), PrisonBreakGame.gameSkin, "custom"); dialogBoxLabel.setPosition(0, 0); dialogBoxLabel.setSize(Gdx.graphics.getWidth(), Gdx.graphics.getHeight() / 5); dialogBoxLabel.setAlignment(Align.topLeft); stage.addActor(dialogBoxLabel); // check if Player have the needed "key" to unlock boolean haveIt = false; for (Item item : player.getInventory()) { if (item.getItemID() == objectItems.get(0).getItemID()) { haveIt = true; neededKey = item; break; } } // Gdx.app.log("haveIt: ", "" + haveIt); // if Player DOEST NOT have the neccessary key -> end the "conversation" dialog // otherwise; let it go on if (!haveIt) { indexForMessageTree = messageTree.get(2).size - 1; } } // second else if (indexForMessageTree == 1) { dialogBoxLabel.setText(messageTree.get(2).get(1) + " " + neededKey.getItemName() + "."); } // third else if (indexForMessageTree == 2) { dialogBoxLabel.setText(messageTree.get(2).get(2)); // create a List contain Yes/No options Array<String> options = new Array<String>(); options.add("Yes"); options.add("No"); itemList = new List(PrisonBreakGame.gameSkin, "custom"); itemList.setItems(options); itemList.setSelectedIndex(0); itemList.setSize(Gdx.graphics.getWidth() / 4, Gdx.graphics.getHeight() / 3); itemList.setPosition(Gdx.graphics.getWidth() - itemList.getWidth(), dialogBoxLabel.getHeight()); itemList.addListener(new InputListener() { @Override public boolean keyDown(InputEvent event, int keycode) { int currentIndex = itemList.getSelectedIndex(); int upIndex = currentIndex - 1; int downIndex = currentIndex + 1; if (upIndex < 0) upIndex = itemList.getItems().size - 1; if (downIndex >= itemList.getItems().size) downIndex = 0; switch (keycode) { case Keys.UP: // scroll up the option list itemList.setSelectedIndex(upIndex); break; case Keys.DOWN: // scroll down the option list itemList.setSelectedIndex(downIndex); break; case Keys.F: // if Player choose "Yes" -> unlock the door if (itemList.getSelectedIndex() == 0) { // set "locked" to false in object of DoorCollision MapObject object = doorObjects.get(latestObjectName); object.getProperties().put("locked", false); // set "locked" to false in object of ObjectInteration object = interactionObjects.get(latestObjectName); object.getProperties().put("locked", false); // set "locked" to false in object of ... } // if "No" -> end dialog "conversation" else { indexForMessageTree = messageTree.get(2).size; // end the dialog } // remove list of items from stage itemList.remove(); resetInputProcessor(); break; default: break; } return true; } }); stage.addActor(itemList); stage.setKeyboardFocus(itemList); // set InputProcessor to stage Gdx.input.setInputProcessor(stage); } // others else { dialogBoxLabel.setText(messageTree.get(2).get(indexForMessageTree)); } ++indexForMessageTree; } // if current door is not locked else { // end of "conversation" -> reset if (indexForMessageTree == messageTree.get(3).size) { state = STATE.ONGOING; interactHappen = false; typeInteraction = TYPE_INTERACTION.NO_INTERACTION; indexForMessageTree = 0; neededKey = null; latestDoorLocked = false; // latestObjectName = ""; dialogBoxLabel.remove(); return; } // first if (indexForMessageTree == 0) { // create conversation box dialogBoxLabel = new Label(messageTree.get(3).get(0), PrisonBreakGame.gameSkin, "custom"); dialogBoxLabel.setPosition(0, 0); dialogBoxLabel.setSize(Gdx.graphics.getWidth(), Gdx.graphics.getHeight() / 5); dialogBoxLabel.setAlignment(Align.topLeft); stage.addActor(dialogBoxLabel); // check if Player have the requied key to lock the door boolean haveIt = false; for (Item item : player.getInventory()) { if (item.getItemID() == objectItems.get(0).getItemID()) { haveIt = true; neededKey = item; } } // if Player DOEST NOT have the neccessary key -> end the "conversation" dialog // otherwise; let it go on if (!haveIt) { indexForMessageTree = messageTree.get(3).size - 1; } } // second else if (indexForMessageTree == 1) { dialogBoxLabel.setText(messageTree.get(3).get(1) + " " + neededKey.getItemName() + "."); } // third else if (indexForMessageTree == 2) { dialogBoxLabel.setText(messageTree.get(3).get(2)); // create a List contain Yes/No options Array<String> options = new Array<String>(); options.add("Yes"); options.add("No"); itemList = new List(PrisonBreakGame.gameSkin, "custom"); itemList.setItems(options); itemList.setSelectedIndex(0); itemList.setSize(Gdx.graphics.getWidth() / 4, Gdx.graphics.getHeight() / 3); itemList.setPosition(Gdx.graphics.getWidth() - itemList.getWidth(), dialogBoxLabel.getHeight()); itemList.addListener(new InputListener() { @Override public boolean keyDown(InputEvent event, int keycode) { int currentIndex = itemList.getSelectedIndex(); int upIndex = currentIndex - 1; int downIndex = currentIndex + 1; if (upIndex < 0) upIndex = itemList.getItems().size - 1; if (downIndex >= itemList.getItems().size) downIndex = 0; switch (keycode) { case Keys.UP: // scroll up the item objectItems itemList.setSelectedIndex(upIndex); break; case Keys.DOWN: // scroll down the item objectItems itemList.setSelectedIndex(downIndex); break; case Keys.F: // if Player choose "Yes" -> lock the door if (itemList.getSelectedIndex() == 0) { // set "locked" to true in object of DoorCollision MapObject object = doorObjects.get(latestObjectName); object.getProperties().put("locked", true); // set "locked" to true in object of ObjectInteration object = interactionObjects.get(latestObjectName); object.getProperties().put("locked", true); // set "locked" to true in object of ... } // if "No" -> end dialog "conversation" else { indexForMessageTree = messageTree.get(3).size; // end the dialog } // remove list of items from stage itemList.remove(); resetInputProcessor(); break; default: break; } return true; } }); stage.addActor(itemList); stage.setKeyboardFocus(itemList); // set InputProcessor to stage Gdx.input.setInputProcessor(stage); } // others else { dialogBoxLabel.setText(messageTree.get(3).get(indexForMessageTree)); } ++indexForMessageTree; } }