package com.igorcrevar.goingunder.objects; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.igorcrevar.goingunder.GameData; import com.igorcrevar.goingunder.GameManager; import com.igorcrevar.goingunder.IActivityRequestHandler; import com.igorcrevar.goingunder.ISceneManager; import com.igorcrevar.goingunder.utils.GameHelper; public class IntroSceneButtons { // buttons private GameButton[] buttons; private final GameManager gameManager; private final GameButton soundButton; public IntroSceneButtons(final ISceneManager sceneManager, final IActivityRequestHandler activityRequestHandler, final GameManager gameManager) { this.gameManager = gameManager; buttons = new GameButton[5]; float upButtonsY = 620; float lowerButtonsY = 380; soundButton = addButton(new GameButton(getTextureForSoundButton(), 50, upButtonsY, 200, 200) { @Override protected void onClick() { gameManager.setSoundOn(!gameManager.getIsSoundOn()); soundButton.changeTexture(getTextureForSoundButton()); } }); addButton(new GameButton(getTextureRegion("rate"), 50, lowerButtonsY, 200, 200) { @Override protected void onClick() { activityRequestHandler.rate(); } }); addButton(new GameButton(getTextureRegion("ach"), 300, upButtonsY, 200, 200) { @Override protected void onClick() { activityRequestHandler.showAchievements(); } }); addButton(new GameButton(getTextureRegion("highscore"), 300, lowerButtonsY, 200, 200) { @Override protected void onClick() { activityRequestHandler.showLeaderboards(); } }); addButton(new GameButton(getTextureRegion("play"), 630, upButtonsY - 20, 400, 400) { @Override protected void onClick() { sceneManager.startGame(); } }); } private GameButton addButton(GameButton gb) { for (int i = 0; i < buttons.length; ++i) { if (buttons[i] == null) { buttons[i] = gb; break; } } return gb; } public boolean check(GameData gameData, float x, float y) { x = GameHelper.screenX2OtherX(x, 1080); y = GameHelper.screenY2OtherY(y, 1920); for (GameButton gb : buttons) { if (gb.check(x, y)) { return true; } } return false; } public void draw(SpriteBatch spriteBatch) { spriteBatch.getProjectionMatrix().setToOrtho2D(0, 0, 1080, 1920); spriteBatch.begin(); for (GameButton gb : buttons) { gb.draw(spriteBatch); } spriteBatch.end(); } private TextureRegion getTextureForSoundButton() { if (gameManager.getIsSoundOn()) { return getTextureRegion("soundon"); } return getTextureRegion("soundoff"); } private TextureRegion getTextureRegion(String name) { return gameManager.getTextureAtlas("widgets").findRegion(name); } }