/*
* This is the Main Menu Screen. As soon as the Game class set up the game data and load the assets, it sets the screen to MainMenuScreen
*/
package com.digitalwolf.screens;
import com.badlogic.gdx.Game;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
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.effects.EffectCreator;
import com.moribitotech.mtx.models.base.EmptyAbstractActor;
import com.moribitotech.mtx.models.base.EmptyAbstractActorLight;
import com.moribitotech.mtx.models.base.TableModel;
import com.moribitotech.mtx.settings.AppSettings;
import com.mtx.scene2dactors.TestActor;
public class MainMenuScreen extends AbstractScreen implements IScreen{
private EmptyAbstractActor testActor;
private ButtonGame timerActor;
private EmptyAbstractActorLight logo;
private EmptyAbstractActorLight rateOnGooglePlay;
public MainMenuScreen(Game game, String screenName) {
super(game, screenName);
//
setUpScreenElements();
setUpInfoPanel();
setUpActors();
setUpMenu();
}
@Override
public void setUpScreenElements() {
setBackgroundTexture(Assets.bg);
setBackButtonActive(true);
//Start Playing the Music if the sound is enabled
if (GameData.getSoundEnabled()) Assets.music.play();
}
@Override
public void setUpInfoPanel() {
// Game Logo
logo = new EmptyAbstractActorLight(358, 188, true);
logo.setPosition(AppSettings.SCREEN_W -1.7f*logo.getWidth(), AppSettings.WORLD_HEIGHT - 1.1f*logo.getHeight());
logo.setTextureRegion(Assets.logo, true);
EffectCreator.create_SC_BTN(logo, 1.0f, 1.0f, 1.0f, null, false);
getStage().addActor(logo);
}
private void setUpActors() {
testActor = new EmptyAbstractActor(50, 100, true);
testActor.setPosition(
240 * AppSettings.getWorldPositionXRatio()
- testActor.getWidth() / 2.0f,
140 * AppSettings.getWorldPositionYRatio()
- testActor.getHeight() / 2.0f);
testActor.setAnimation(Assets.pummaStill, true, true);
getStage().addActor(testActor);
timerActor = MenuCreator.createCustomGameButton(Assets.smallFont, Assets.tooltip, Assets.tooltip,360,60,true);
timerActor.setPosition(testActor.getX()+testActor.getWidth(), testActor.getY()+testActor.getHeight());
timerActor.setTextPosXY(10, 52);
timerActor.setText("Keep Patience.. Run!", true);
getStage().addActor(timerActor);
}
@Override
public void setUpMenu() {
// // #######################################
TableModel tableMenu = new TableModel(null,
300*AppSettings.getWorldPositionXRatio(), 2*AppSettings.WORLD_HEIGHT/3);
tableMenu.setPosition(AppSettings.WORLD_WIDTH + tableMenu.getWidth(),
-AppSettings.getWorldPositionYRatio());
tableMenu.addAction(Actions.moveTo(AppSettings.WORLD_WIDTH - tableMenu.getWidth(), 0, 0.5f));
// #######################################
ButtonGame startGameButton = MenuCreator.createCustomGameButton(null, Assets.startgame_button, Assets.startgame_button2);
startGameButton.addListener(new ActorGestureListener() {
@Override
public void touchUp(InputEvent event, float x, float y,
int pointer, int button) {
super.touchUp(event, x, y, pointer, button);
//
getGame().setScreen(new LevelSelectScreen(getGame(), "Game Screen"));
}
});
// #########################################
ButtonGame highScoresButton = MenuCreator.createCustomGameButton(null,
Assets.button_highscore, Assets.button_highscore2);
highScoresButton.addListener(new ActorGestureListener() {
@Override
public void touchUp(InputEvent event, float x, float y,
int pointer, int button) {
super.touchUp(event, x, y, pointer, button);
//
getGame().setScreen(new HighScoresScreen(getGame(), "High Scores Screen"));
}
});
// #######################################
ButtonGame creditsButton = MenuCreator.createCustomGameButton(
null, Assets.button_credits,
Assets.button_credits2);
creditsButton.addListener(new ActorGestureListener() {
@Override
public void touchUp(InputEvent event, float x, float y,
int pointer, int button) {
super.touchUp(event, x, y, pointer, button);
getGame().setScreen(new CreditsScreen(getGame(), "Credits Screen"));
}
});
// #########################################
final TestActor btnOn = new TestActor(90, 90, true);
TextureRegion temp = (GameData.getSoundEnabled())?Assets.button_on:Assets.button_off;
btnOn.setTextureRegion(temp, true);
btnOn.addListener(new ActorGestureListener() {
@Override
public void touchUp(InputEvent event, float x, float y,
int pointer, int button) {
super.touchUp(event, x, y, pointer, button);
//
if(GameData.getSoundEnabled()){
if(Assets.music.isPlaying())
Assets.music.pause();
btnOn.setTextureRegion(Assets.button_off, true);
GameData.setSoundEnabled(false);
}
else{
if(!(Assets.music.isPlaying()))
Assets.music.play();
btnOn.setTextureRegion(Assets.button_on, true);
GameData.setSoundEnabled(true);
}
}
});
// #########################################
rateOnGooglePlay = new EmptyAbstractActorLight(120, 120, true);
rateOnGooglePlay.setTextureRegion(Assets.rateOnGooglePlay, true);
rateOnGooglePlay.setPosition(10*AppSettings.getWorldSizeRatio(), 10*AppSettings.getWorldSizeRatio());
rateOnGooglePlay.addListener(new ActorGestureListener() {
@Override
public void touchUp(InputEvent event, float x, float y,
int pointer, int button) {
super.touchUp(event, x, y, pointer, button);
//
Gdx.net.openURI("https://play.google.com/store/apps/details?id=com.digitalwolf.adventuresOfPumma");
}
});
getStage().addActor(rateOnGooglePlay);
//
float dipRatioWidth = 1.1f* 174 * AppSettings.getWorldSizeRatio();
float dipRatioHeight = 1.1f* 74 * AppSettings.getWorldSizeRatio();
float padding = 1.0f * AppSettings.getWorldSizeRatio();
// #######################################
tableMenu.add(startGameButton).size(dipRatioWidth, dipRatioHeight).pad(padding);
tableMenu.row();
tableMenu.add(highScoresButton).size(dipRatioWidth, dipRatioHeight).pad(padding);
tableMenu.row();
tableMenu.add(creditsButton).size(dipRatioWidth, dipRatioHeight).pad(padding);
tableMenu.row();
tableMenu.add(btnOn).padLeft(padding*20).size(80* AppSettings.getWorldSizeRatio(), 80* AppSettings.getWorldSizeRatio());
getStage().addActor(tableMenu);
}
@Override
public void render(float delta) {
super.render(delta);
if(getSecondsTime()%2==0){
EffectCreator.create_SC(logo, 1.0f, 1.0f, 5, getStage(), false);
}
else{
EffectCreator.create_SC(logo, 0.6f, 0.6f, 5, getStage(), false);
}
if(getSecondsTime()%3==0){
EffectCreator.create_SC(rateOnGooglePlay, 1.2f, 1.2f, 2, getStage(), false);
}
else{
EffectCreator.create_SC(rateOnGooglePlay, 0.8f, 0.8f, 2, getStage(), false);
}
}
@Override
public void keyBackPressed() {
super.keyBackPressed();
Gdx.app.exit();
}
}