public void addResumeButton(Table table) { TextButton resume = new TextButton("Resume", assetHolder.buttonStyle); resume.addListener( new InputListener() { private GameOverlay gOverlay; public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) { return true; } public void touchUp(InputEvent event, float x, float y, int pointer, int button) { gOverlay.unpauseOverlay(); } public InputListener setSceneChanger(GameOverlay s) { this.gOverlay = s; return this; } }.setSceneChanger(this)); table .add(resume) .height(assetHolder.getPercentHeightInt(assetHolder.buttonHeight)) .width(assetHolder.getPercentWidthInt(assetHolder.buttonWidth)) .pad(10); table.row(); }
public void setupWinButtons() { bottomMenu.clearChildren(); if (assetHolder.levelLoader.areMoveLevels()) { TextButton nextLevel = new TextButton("Next Level", assetHolder.buttonStyle); nextLevel.addListener( new InputListener() { private GameOverlay gOverlay; public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) { return true; } public void touchUp(InputEvent event, float x, float y, int pointer, int button) { gOverlay.unpauseOverlay(); gOverlay.nextLevel(); } public InputListener setSceneChanger(GameOverlay s) { this.gOverlay = s; return this; } }.setSceneChanger(this)); bottomMenu .add(nextLevel) .height(assetHolder.getPercentHeightInt(assetHolder.buttonHeight)) .width(assetHolder.getPercentWidthInt(assetHolder.buttonWidth)) .pad(10); bottomMenu.row(); } addRetryButtons(bottomMenu); }
public void showSheepMessageButtons() { if (sheepGame.isLosing()) { setupLoseButtons(); } else if (sheepGame.isWinning()) { setupWinButtons(); } else if (sheepGame.lastMessage()) { bottomMenu.clearChildren(); TextButton start = new TextButton("Start Level", assetHolder.buttonStyle); start.addListener( new InputListener() { private GameOverlay gOverlay; public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) { return true; } public void touchUp(InputEvent event, float x, float y, int pointer, int button) { gOverlay.removeSheepMessage(); } public InputListener setSceneChanger(GameOverlay s) { this.gOverlay = s; return this; } }.setSceneChanger(this)); bottomMenu .add(start) .height(assetHolder.getPercentHeightInt(assetHolder.buttonHeight)) .width(assetHolder.getPercentWidthInt(assetHolder.buttonWidth)) .pad(10); } else { bottomMenu.clearChildren(); TextButton next = new TextButton("Next", assetHolder.buttonStyle); next.addListener( new InputListener() { private GameOverlay gOverlay; public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) { return true; } public void touchUp(InputEvent event, float x, float y, int pointer, int button) { gOverlay.removeSheepMessage(); } public InputListener setSceneChanger(GameOverlay s) { this.gOverlay = s; return this; } }.setSceneChanger(this)); bottomMenu .add(next) .height(assetHolder.getPercentHeightInt(assetHolder.buttonHeight)) .width(assetHolder.getPercentWidthInt(assetHolder.buttonWidth)) .pad(10); } }
public void addRetryButtons(Table table) { TextButton retry = new TextButton("Restart Level", assetHolder.buttonStyle); retry.addListener( new InputListener() { private GameOverlay gOverlay; public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) { return true; } public void touchUp(InputEvent event, float x, float y, int pointer, int button) { gOverlay.unpauseOverlay(); gOverlay.retryLevel(); } public InputListener setSceneChanger(GameOverlay s) { this.gOverlay = s; return this; } }.setSceneChanger(this)); table .add(retry) .height(assetHolder.getPercentHeightInt(assetHolder.buttonHeight)) .width(assetHolder.getPercentWidthInt(assetHolder.buttonWidth)) .pad(10); table.row(); TextButton selectLevel = new TextButton("Main Menu", assetHolder.buttonStyle); selectLevel.addListener( new InputListener() { private GameOverlay gOverlay; public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) { return true; } public void touchUp(InputEvent event, float x, float y, int pointer, int button) { gOverlay.unpauseOverlay(); gOverlay.toMainMenu(); } public InputListener setSceneChanger(GameOverlay s) { this.gOverlay = s; return this; } }.setSceneChanger(this)); table .add(selectLevel) .height(assetHolder.getPercentHeightInt(assetHolder.buttonHeight)) .width(assetHolder.getPercentWidthInt(assetHolder.buttonWidth)) .pad(10); table.row(); if (assetHolder.levelLoader.currentLevelHasHelp()) addHelpButton(table); }
public void render(float delta) { // do messages if (sheepGame.hasMessage()) { batch.begin(); if (resultTime < 0) resultTime = 0; resultTime += delta; drawSheepMessage(sheepGame.getMessage()); batch.end(); } stage.act(delta); stage.draw(); if (inOverlay) { batch.begin(); batch.setColor(0f, 0f, 0f, 0.75f); batch.draw( assetHolder.white, 0, 0, assetHolder.getPercentWidth(1), assetHolder.getPercentHeight(1)); batch.end(); } overlayStage.act(delta); overlayStage.draw(); }
public void drawSheepMessage(SheepMessage msg) { if (resultTime > resultFadeDelay) { resultTime = resultFadeDelay; if (!shownBottomMenu) { shownBottomMenu = true; showSheepMessageButtons(); } } // get the alpha based on the time the message has been on the screen float alpha = (resultTime / resultFadeDelay) * resultBannerAlpha; // set the alpha of the batch batch.setColor(1.0f, 1.0f, 1.0f, alpha); TextBounds tb = assetHolder.fontWhite.getMultiLineBounds(msg.msg); // draw the background for the text with some padding Texture tex = assetHolder.redTex; if (msg.color.equals("green")) tex = assetHolder.greenTex; batch.draw( tex, assetHolder.getPercentWidth(.45f) - (float) tb.width / 2.0f, assetHolder.getPercentHeight(msg.pos - .025f) - (float) tb.height / 2.0f, tb.width + assetHolder.getPercentWidth(.1f), tb.height + assetHolder.getPercentHeight(.05f)); // set the alpha of the font assetHolder.fontWhite.setColor(1, 1, 1, alpha); assetHolder.fontWhite.drawMultiLine( batch, msg.msg, assetHolder.getPercentWidth(.5f) - (float) tb.width / 2.0f, assetHolder.getPercentHeight(msg.pos) + (float) tb.height / 2.0f, tb.width, HAlignment.CENTER); }