package com.digitalwolf.screenhelpers; import com.badlogic.gdx.scenes.scene2d.InputEvent; import com.badlogic.gdx.scenes.scene2d.actions.Actions; import com.badlogic.gdx.scenes.scene2d.utils.ActorGestureListener; import com.digitalwolf.drona.assets.Assets; import com.digitalwolf.drona.screens.GameScreen; import com.digitalwolf.drona.sprites.Drona; import com.moribitotech.mtx.ButtonGame; import com.moribitotech.mtx.MenuCreator; import com.moribitotech.mtx.models.base.EmptyAbstractActor; import com.moribitotech.mtx.models.base.TableModel; import com.moribitotech.mtx.settings.AppSettings; public class GameReadyScreenHelper implements ScreenHelper{ public TableModel readyMenuTable; private ButtonGame levelInfoButton,screenShotButton; private EmptyAbstractActor dronaAnimation; private final float dipRatioWidth = 500*AppSettings.getWorldPositionXRatio(); private final float dipRatioHeight = 100*AppSettings.getWorldPositionYRatio(); @Override public void setUpMenu(final GameScreen gameScreen) { readyMenuTable = new TableModel(null, 500*AppSettings.getWorldPositionXRatio(), 4.5f*dipRatioHeight); readyMenuTable.setPosition(230*AppSettings.getWorldPositionXRatio(), AppSettings.SCREEN_H + 1.1f*readyMenuTable.getHeight()); levelInfoButton = MenuCreator.createCustomGameButton(Assets.gameFont, Assets.rectangle_button2, Assets.rectangle_button2); levelInfoButton.setTextPosXY(50*AppSettings.getWorldPositionXRatio(), 60*AppSettings.getWorldPositionYRatio()); levelInfoButton.addListener(new ActorGestureListener() { @Override public void touchUp(InputEvent event, float x, float y, int pointer, int button) { super.touchUp(event, x, y, pointer, button); sendAwayMenu(gameScreen); GameScreen.state = GameScreen.GAME_RUNNING; } }); screenShotButton = MenuCreator.createCustomGameButton(null, Assets.highscore_table, Assets.highscore_table); screenShotButton.setTextureExternalPosXY(50*AppSettings.getWorldPositionXRatio(), 80*AppSettings.getWorldPositionYRatio()); screenShotButton.setTextureExternalSize(dipRatioWidth/1.3f, 1.8f*dipRatioHeight); screenShotButton.setTextureExternal(Assets.bg, true); screenShotButton.setExternalTextureActive(false); dronaAnimation = new EmptyAbstractActor(2048/8*0.6f, 275*0.6f, true); dronaAnimation.setPosition(300 *AppSettings.getWorldPositionXRatio(),AppSettings.SCREEN_H+2*Drona.height); dronaAnimation.setAnimation(Assets.dronaFlying, true, true); readyMenuTable.add(screenShotButton).size(dipRatioWidth, 3.5f*dipRatioHeight).center(); readyMenuTable.row(); readyMenuTable.add(levelInfoButton).size(4*dipRatioWidth/5, dipRatioHeight).center(); gameScreen.getStage().addActor(readyMenuTable); gameScreen.getStage().addActor(dronaAnimation); } @Override public void sendInMenu(final GameScreen gameScreen) { // SEND AWAY ALL THE SCREEN HELPERS FIRST Assets.playSound(Assets.appearing); gameScreen.sendAwayAllScreenHelpers(); levelInfoButton.setText(" LEVEL : "+GameScreen.currentlevel, true); gameScreen.isReadyMenuDisplaying = true; readyMenuTable.addAction(Actions.moveTo(230*AppSettings.getWorldPositionXRatio(), AppSettings.SCREEN_H - 1.1f*readyMenuTable.getHeight(), 0.5f)); screenShotButton.setExternalTextureActive(true); dronaAnimation.addAction(Actions.moveTo(300 *AppSettings.getWorldPositionXRatio(),AppSettings.SCREEN_H-300*AppSettings.getWorldPositionYRatio(), 0.5f)); } @Override public void sendAwayMenu(final GameScreen gameScreen) { gameScreen.isReadyMenuDisplaying = false; readyMenuTable.addAction(Actions.moveTo(230*AppSettings.getWorldPositionXRatio(), AppSettings.SCREEN_H + 1.1f*readyMenuTable.getHeight(), 0.5f)); dronaAnimation.addAction(Actions.moveTo(300 *AppSettings.getWorldPositionXRatio(),AppSettings.SCREEN_H+2*Drona.height, 0.5f)); Assets.appearing.stop(); } }