package com.digitalwolf.screens; import com.badlogic.gdx.Game; 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.assets.Assets; import com.digitalwolf.gamedata.GameData; import com.moribitotech.mtx.AbstractScreen; import com.moribitotech.mtx.ButtonGame; import com.moribitotech.mtx.IScreen; import com.moribitotech.mtx.MenuCreator; import com.moribitotech.mtx.models.base.EmptyAbstractActor; import com.moribitotech.mtx.models.base.TableModel; import com.moribitotech.mtx.models.base.Text; import com.moribitotech.mtx.settings.AppSettings; public class HighScoresScreen extends AbstractScreen implements IScreen{ TableModel tableMenu; float dipRatioWidth = AppSettings.WORLD_WIDTH/2.5f; float dipRatioHeight = 50 * AppSettings.getWorldSizeRatio(); float padding = 2.0f * AppSettings.getWorldSizeRatio(); ButtonGame btnHome; EmptyAbstractActor player; public HighScoresScreen(Game game, String screenName) { super(game, screenName); setUpScreenElements(); setUpInfoPanel(); setUpActors(); setUpMenu(); } @Override public void setUpScreenElements() { setBackgroundTexture(Assets.bg); setBackButtonActive(true); } @Override public void setUpInfoPanel() { // Home Button btnHome = MenuCreator.createCustomGameButton(null, Assets.left_button, Assets.left_button, 64, 64 ,true); btnHome.setPosition(AppSettings.SCREEN_W - btnHome.getWidth(), AppSettings.SCREEN_H-btnHome.getHeight()); btnHome.addListener(new ActorGestureListener() { @Override public void touchUp(InputEvent event, float x, float y, int pointer, int button) { super.touchUp(event, x, y, pointer, button); setAwayMenu(); getGame().setScreen(new MainMenuScreen(getGame(), "MainMenu")); } }); getStage().addActor(btnHome); } private void setUpActors() { player = new EmptyAbstractActor(40, 80, true); player.setPosition( 100 * AppSettings.getWorldPositionXRatio()- player.getWidth() / 2.0f, 100 * AppSettings.getWorldPositionYRatio() - player.getHeight() / 2.0f); getStage().addActor(player); player.setAnimation(Assets.pummaStill, true, true); ButtonGame text = MenuCreator.createCustomGameButton(Assets.smallFont, Assets.tooltip, Assets.tooltip, dipRatioWidth/1.3f, dipRatioHeight*1.2f, true); text.setPosition(player.getX(),player.getY()+player.getHeight()); text.setText("High Scores ", true); text.setTextPosXY(30, 50); getStage().addActor(text); } @Override public void setUpMenu() { // #03.2 Test // Menu table with sliding animation // // ####################################### tableMenu = new TableModel(Assets.table_menu, 528*AppSettings.getWorldPositionXRatio() , 454*AppSettings.getWorldPositionYRatio()); tableMenu.setPosition(AppSettings.SCREEN_W - 1.1f*tableMenu.getWidth(), AppSettings.SCREEN_H + tableMenu.getHeight()); tableMenu.addAction(Actions.moveTo(AppSettings.SCREEN_W - 1.1f*tableMenu.getWidth(), AppSettings.SCREEN_H - 1.1f*tableMenu.getHeight(), 0.5f)); for(int i=0; i<5;i++){ addScoreButton(i); } getStage().addActor(tableMenu); } public void setAwayMenu() { tableMenu.addAction(Actions.moveTo(AppSettings.SCREEN_W - 1.1f*tableMenu.getWidth(), AppSettings.SCREEN_H + tableMenu.getHeight(), 0.5f)); } private void addScoreButton(int i){ Text scoreText = new Text(Assets.smallFont, dipRatioWidth,dipRatioHeight, true); scoreText.setText((i+1)+") "+" "+GameData.getHighScores()[i]); scoreText.setOrigin(0, 0); tableMenu.add(scoreText).size(dipRatioWidth, dipRatioHeight).pad(padding); tableMenu.row(); } @Override public void keyBackPressed() { super.keyBackPressed(); getGame().setScreen( new MainMenuScreen(getGame(), "MenuScreen")); } }