summaryrefslogtreecommitdiffstats
path: root/core/src/ch/asynk/tankontank/screens/MenuScreen.java
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/ch/asynk/tankontank/screens/MenuScreen.java')
-rw-r--r--core/src/ch/asynk/tankontank/screens/MenuScreen.java264
1 files changed, 0 insertions, 264 deletions
diff --git a/core/src/ch/asynk/tankontank/screens/MenuScreen.java b/core/src/ch/asynk/tankontank/screens/MenuScreen.java
deleted file mode 100644
index 9486413..0000000
--- a/core/src/ch/asynk/tankontank/screens/MenuScreen.java
+++ /dev/null
@@ -1,264 +0,0 @@
-package ch.asynk.tankontank.screens;
-
-import com.badlogic.gdx.Gdx;
-import com.badlogic.gdx.Screen;
-import com.badlogic.gdx.InputAdapter;
-import com.badlogic.gdx.graphics.GL20;
-import com.badlogic.gdx.graphics.Texture;
-import com.badlogic.gdx.graphics.g2d.SpriteBatch;
-import com.badlogic.gdx.graphics.g2d.TextureAtlas;
-import com.badlogic.gdx.graphics.g2d.TextureRegion;
-import com.badlogic.gdx.graphics.g2d.Sprite;
-import com.badlogic.gdx.math.Vector3;
-import com.badlogic.gdx.math.Interpolation;
-
-import ch.asynk.tankontank.TankOnTank;
-import ch.asynk.tankontank.ui.Position;
-import ch.asynk.tankontank.menu.MainMenu;
-import ch.asynk.tankontank.menu.OptionsMenu;
-import ch.asynk.tankontank.menu.ScenariosMenu;
-import ch.asynk.tankontank.menu.TutorialsMenu;
-
-public class MenuScreen implements Screen
-{
- private final TankOnTank game;
-
- private final int OFFSET = 20;
- private final int V_WIDTH = 1600;
- private final int V_HEIGHT = 1125;
- private final int V_CENTER_X = 1000;
- private final int V_CENTER_Y = 890;
-
- private float percent;
- private float delay = 0.0f;
- private float dx;
- private float dy;
- private int[] xPath = { 369, 558, 747, 936, 1125, 1030, 936, 1125, 1314, 1408, 1597};
- private int[] yPath = { 565, 565, 565, 565, 565, 729, 892, 892, 892, 1056, 1056};
- private int n = xPath.length;
-
- private boolean ready;
- private boolean gameAssetsLoading;
- private Texture bg;
-
- private Sprite unit;
- private Sprite move;
- private Sprite from;
- private Sprite to;
- private Sprite geFlag;
- private Sprite usFlag;
- private Sprite lnl;
- private Sprite logo;
-
- private MainMenu mainMenu;
- private OptionsMenu optionsMenu;
- private ScenariosMenu scenariosMenu;
- private TutorialsMenu tutorialsMenu;
-
- private final MenuCamera camera;
- private final SpriteBatch batch;
- private Vector3 touch = new Vector3();
-
- public MenuScreen(final TankOnTank game)
- {
- this.game = game;
- this.batch = new SpriteBatch();
-
- float width = Gdx.graphics.getWidth();
- float height = Gdx.graphics.getHeight();
-
- this.camera = new MenuCamera(V_CENTER_X, V_CENTER_Y, V_WIDTH, V_HEIGHT, game.hudCorrection);
-
- this.gameAssetsLoading = false;
-
- this.bg = game.manager.get("data/map_a.png", Texture.class);
-
- this.unit = new Sprite(game.menuAtlas.findRegion("unit"));
- this.move = new Sprite(game.menuAtlas.findRegion("move"));
- this.from = new Sprite(game.menuAtlas.findRegion("from"));
- this.to = new Sprite(game.menuAtlas.findRegion("to"));
- this.usFlag = new Sprite(game.menuAtlas.findRegion("us-flag"));
- this.geFlag = new Sprite(game.menuAtlas.findRegion("ge-flag"));
- this.lnl = new Sprite(game.menuAtlas.findRegion("lnl"));
- this.logo = new Sprite(game.menuAtlas.findRegion("logo"));
-
- this.mainMenu = new MainMenu(game.fontB, game.uiAtlas);
- this.optionsMenu = new OptionsMenu(game, game.fontB, game.uiAtlas);
- this.scenariosMenu = new ScenariosMenu(game, game.fontB, game.uiAtlas);
- this.tutorialsMenu = new TutorialsMenu(game, game.fontB, game.uiAtlas);
-
- this.game.config.battle = null;
-
- Gdx.input.setInputProcessor(new InputAdapter() {
- @Override
- public boolean touchDown(int x, int y, int pointer, int button)
- {
- camera.uiUnproject(x, y, touch);
- return hit(touch.x, touch.y);
- }
- });
- }
-
- private boolean hit(float x, float y)
- {
- if (mainMenu.hit(x, y)) {
- mainMenu.visible = false;
- showNextMenu();
- return true;
- } else if (optionsMenu.hit(x, y)) {
- mainMenu.visible = true;
- optionsMenu.visible = false;
- return true;
- } else if (scenariosMenu.hit(x, y)) {
- mainMenu.visible = true;
- scenariosMenu.visible = false;
- if (scenariosMenu.launch)
- startLoading();
- return true;
- } else if (tutorialsMenu.hit(x, y)) {
- mainMenu.visible = true;
- tutorialsMenu.visible = false;
- return true;
- }
-
- return false;
- }
-
- private void showNextMenu()
- {
- MainMenu.Items item = mainMenu.getMenu();
-
- if (item == MainMenu.Items.OPTIONS)
- optionsMenu.visible = true;
- else if (item == MainMenu.Items.SCENARIOS)
- scenariosMenu.visible = true;
- else if (item == MainMenu.Items.TUTORIALS)
- tutorialsMenu.visible = true;
- }
-
- private void startLoading()
- {
- mainMenu.visible = false;
- game.loadGameAssets();
- gameAssetsLoading = true;
- }
-
- private void gameAssetsLoadingCompleted()
- {
- TankOnTank.debug("LoadScreen", "assets ready : " + (Gdx.app.getJavaHeap()/1024.0f) + "KB");
- game.switchToGame();
- dispose();
- }
-
- @Override
- public void render(float delta)
- {
- float x = xPath[0];
- float y = yPath[0];
- if (gameAssetsLoading) {
- if (game.manager.update()) {
- delay += delta;
- if (delay >= 0.6f)
- gameAssetsLoadingCompleted();
- }
-
- percent = Interpolation.linear.apply(percent, game.manager.getProgress(), 0.1f);
- int idx = (int) (percent * 10);
- float fraction = ((percent * 100 ) % 10 / 10);
- x = (xPath[idx] + ((xPath[idx + 1] - xPath[idx]) * fraction));
- y = (yPath[idx] + ((yPath[idx + 1] - yPath[idx]) * fraction));
- }
-
- Gdx.gl.glClearColor(0, 0, 0, 1);
- Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
-
- batch.setProjectionMatrix(camera.combined);
- batch.begin();
- batch.draw(bg, 0, 0);
- from.draw(batch);
- to.draw(batch);
- usFlag.draw(batch);
- geFlag.draw(batch);
- for (int i = 1; i < (n - 1); i++)
- drawCentered(batch, move, xPath[i], yPath[i]);
- drawCentered(batch, unit, (int) (x + dx), (int) (y + dy));
- batch.end();
-
- batch.setProjectionMatrix(camera.uiCombined());
- batch.begin();
- batch.draw(logo, OFFSET, (camera.getScreenHeight() - logo.getRegionHeight() - OFFSET));
- batch.draw(lnl, (camera.getScreenWidth() - lnl.getRegionWidth() - (2 * OFFSET)), (2 * OFFSET));
- mainMenu.draw(batch);
- optionsMenu.draw(batch);
- scenariosMenu.draw(batch);
- tutorialsMenu.draw(batch);
- batch.end();
- }
-
- private void drawCentered(SpriteBatch batch, TextureRegion region, int x, int y)
- {
- batch.draw(region, (x - (region.getRegionWidth() / 2f)), (y - (region.getRegionHeight() / 2f)));
- }
-
- private void setCenteredPosition(Sprite sprite, int x, int y)
- {
- sprite.setPosition((x - (sprite.getWidth() / 2f)), (y - (sprite.getHeight() / 2f)));
- }
-
- private void update(int width, int height)
- {
- camera.updateViewport(width, height);
- Position.update(camera.getHudLeft(), camera.getHudBottom(), camera.getHudWidth(), camera.getHudHeight());
-
- setCenteredPosition(from, xPath[0], yPath[0]);
- setCenteredPosition(to, xPath[n - 1], yPath[n - 1]);
- setCenteredPosition(usFlag, xPath[0], yPath[0]);
- setCenteredPosition(geFlag, xPath[n - 1], yPath[n - 1]);
-
- mainMenu.setPosition();
- optionsMenu.setPosition();
- scenariosMenu.setPosition();
- tutorialsMenu.setPosition();
- }
-
- @Override
- public void resize(int width, int height)
- {
- update(width, height);
- }
-
- @Override
- public void dispose()
- {
- mainMenu.dispose();
- optionsMenu.dispose();
- scenariosMenu.dispose();
- tutorialsMenu.dispose();
- }
-
- @Override
- public void show()
- {
- int width = (int) Gdx.graphics.getWidth();
- int height = (int) Gdx.graphics.getHeight();
- update(width, height);
- }
-
- @Override
- public void hide()
- {
- // TankOnTank.debug("MenuScreen", "hide()");
- }
-
- @Override
- public void pause()
- {
- // TankOnTank.debug("MenuScreen", "pause()");
- }
-
- @Override
- public void resume()
- {
- // TankOnTank.debug("MenuScreen", "resume()");
- }
-}