summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/src/ch/asynk/tankontank/screens/MenuCamera.java (renamed from core/src/ch/asynk/tankontank/screens/MenuBgCamera.java)29
-rw-r--r--core/src/ch/asynk/tankontank/screens/MenuScreen.java20
2 files changed, 35 insertions, 14 deletions
diff --git a/core/src/ch/asynk/tankontank/screens/MenuBgCamera.java b/core/src/ch/asynk/tankontank/screens/MenuCamera.java
index 200e5ed..21f5a48 100644
--- a/core/src/ch/asynk/tankontank/screens/MenuBgCamera.java
+++ b/core/src/ch/asynk/tankontank/screens/MenuCamera.java
@@ -2,17 +2,20 @@ package ch.asynk.tankontank.screens;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.OrthographicCamera;
+import com.badlogic.gdx.math.Vector3;
+import com.badlogic.gdx.math.Matrix4;
import com.badlogic.gdx.math.Rectangle;
-public class MenuBgCamera extends OrthographicCamera
+public class MenuCamera extends OrthographicCamera
{
private static final float ZEROF = 0.01f;
private float virtualAspect;
private final Rectangle virtual;
private final Rectangle screen;
+ private final OrthographicCamera uiCamera;
- public MenuBgCamera(int cx, int cy, int width, int height)
+ public MenuCamera(int cx, int cy, int width, int height)
{
super(width, height);
this.virtual = new Rectangle();
@@ -21,6 +24,7 @@ public class MenuBgCamera extends OrthographicCamera
this.screen = new Rectangle();
this.screen.set(0, 0, 0, 0);
this.position.set(virtual.x, virtual.y, 0f);
+ this.uiCamera = new OrthographicCamera();
}
public void updateViewport(int screenWidth, int screenHeight)
@@ -42,5 +46,26 @@ public class MenuBgCamera extends OrthographicCamera
Gdx.gl.glViewport((int)screen.x, (int)screen.y, (int)screen.width, (int)screen.height);
update(true);
+ uiCamera.setToOrtho(false, screenWidth, screenHeight);
+ }
+
+ public float getScreenWidth()
+ {
+ return screen.width;
+ }
+
+ public float getScreenHeight()
+ {
+ return screen.height;
+ }
+
+ public Vector3 uiUnproject(Vector3 v)
+ {
+ return uiCamera.unproject(v);
+ }
+
+ public Matrix4 uiCombined()
+ {
+ return uiCamera.combined;
}
}
diff --git a/core/src/ch/asynk/tankontank/screens/MenuScreen.java b/core/src/ch/asynk/tankontank/screens/MenuScreen.java
index 94eb700..9c2febd 100644
--- a/core/src/ch/asynk/tankontank/screens/MenuScreen.java
+++ b/core/src/ch/asynk/tankontank/screens/MenuScreen.java
@@ -11,7 +11,6 @@ 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 com.badlogic.gdx.utils.viewport.ScreenViewport;
import ch.asynk.tankontank.TankOnTank;
import ch.asynk.tankontank.ui.Position;
@@ -56,8 +55,7 @@ public class MenuScreen implements Screen
private ScenariosMenu scenariosMenu;
private TutorialsMenu tutorialsMenu;
- private final MenuBgCamera bgCamera;
- private final ScreenViewport screenViewport;
+ private final MenuCamera camera;
private final SpriteBatch batch;
private Vector3 touch = new Vector3();
@@ -69,8 +67,7 @@ public class MenuScreen implements Screen
float width = Gdx.graphics.getWidth();
float height = Gdx.graphics.getHeight();
- this.bgCamera = new MenuBgCamera(V_CENTER_X, V_CENTER_Y, V_WIDTH, V_HEIGHT);
- this.screenViewport = new ScreenViewport();
+ this.camera = new MenuCamera(V_CENTER_X, V_CENTER_Y, V_WIDTH, V_HEIGHT);
this.gameAssetsLoading = false;
@@ -97,7 +94,7 @@ public class MenuScreen implements Screen
public boolean touchDown(int x, int y, int pointer, int button)
{
touch.set(x, y, 0f);
- screenViewport.getCamera().unproject(touch);
+ camera.uiUnproject(touch);
return hit(touch.x, touch.y);
}
});
@@ -176,7 +173,7 @@ public class MenuScreen implements Screen
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
- batch.setProjectionMatrix(bgCamera.combined);
+ batch.setProjectionMatrix(camera.combined);
batch.begin();
batch.draw(bg, 0, 0);
from.draw(batch);
@@ -188,10 +185,10 @@ public class MenuScreen implements Screen
drawCentered(batch, unit, (int) (x + dx), (int) (y + dy));
batch.end();
- batch.setProjectionMatrix(screenViewport.getCamera().combined);
+ batch.setProjectionMatrix(camera.uiCombined());
batch.begin();
- batch.draw(logo, OFFSET, (screenViewport.getScreenHeight() - logo.getRegionHeight() - OFFSET));
- batch.draw(lnl, (screenViewport.getScreenWidth() - lnl.getRegionWidth() - (2 * OFFSET)), (2 * OFFSET));
+ 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);
@@ -211,8 +208,7 @@ public class MenuScreen implements Screen
private void update(int width, int height)
{
- bgCamera.updateViewport(width, height);
- screenViewport.update(width, height, true);
+ camera.updateViewport(width, height);
Position.update(width, height);
setCenteredPosition(from, xPath[0], yPath[0]);