diff options
author | Jérémy Zurcher <jeremy@asynk.ch> | 2015-07-15 16:44:42 +0200 |
---|---|---|
committer | Jérémy Zurcher <jeremy@asynk.ch> | 2015-07-15 16:44:42 +0200 |
commit | a20b6a9d960b68e1818d6688c84b989808618b60 (patch) | |
tree | 73ebe48b6e1f10466006e6ced4ea5205f909448e /core/src/ch | |
parent | aa97fd609205ddbfe0420241b099865b91d37f20 (diff) | |
download | RustAndDust-a20b6a9d960b68e1818d6688c84b989808618b60.zip RustAndDust-a20b6a9d960b68e1818d6688c84b989808618b60.tar.gz |
GameCamera: add Rectangle hud
Diffstat (limited to 'core/src/ch')
-rw-r--r-- | core/src/ch/asynk/creepingarmor/screens/GameCamera.java | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/core/src/ch/asynk/creepingarmor/screens/GameCamera.java b/core/src/ch/asynk/creepingarmor/screens/GameCamera.java index 53896bb..c97234a 100644 --- a/core/src/ch/asynk/creepingarmor/screens/GameCamera.java +++ b/core/src/ch/asynk/creepingarmor/screens/GameCamera.java @@ -22,6 +22,7 @@ public class GameCamera extends OrthographicCamera private float heightFactor; private Rectangle virtual; private Rectangle window; + private Rectangle hud; private Matrix4 hudMatrix; private Matrix4 hudInvProjMatrix; private int hudCorrection; @@ -37,6 +38,7 @@ public class GameCamera extends OrthographicCamera this.virtual = new Rectangle(); this.virtual.set(0, 0, virtualWidth, virtualHeight); this.window = new Rectangle(); + this.hud = new Rectangle(); this.hudMatrix = new Matrix4(); this.hudInvProjMatrix = new Matrix4(); this.hudLeft = 0; @@ -57,18 +59,20 @@ public class GameCamera extends OrthographicCamera window.height = screenHeight; window.x = ((screenWidth - window.width) / 2f); window.y = 0f; + hud.y = hudCorrection; + hud.x = (hud.y * viewportWidth / viewportHeight); viewportWidth = (viewportHeight * (window.width / window.height)); - hudBottom = hudCorrection; - hudLeft = (int) (hudBottom * viewportWidth / viewportHeight); } else if (diff > ZEROF) { window.width = screenWidth; window.height = java.lang.Math.min((screenWidth * viewportAspect / zoom), screenHeight); window.x = 0f; window.y = ((screenHeight - window.height) / 2f); viewportHeight = (viewportWidth * (window.height / window.width)); - hudLeft = hudCorrection; - hudBottom = (int) (hudLeft / viewportWidth * viewportHeight); + hud.x = hudCorrection; + hud.y = (hud.x / viewportWidth * viewportHeight); } + hud.width = (window.width - (2 * hud.x)); + hud.height = (window.height - (2 * hud.y)); Gdx.gl.glViewport((int)window.x, (int)window.y, (int)window.width, (int)window.height); @@ -77,7 +81,7 @@ public class GameCamera extends OrthographicCamera clampPosition(); update(true); - hudMatrix.setToOrtho2D(getHudLeft(), getHudBottom(), getHudWidth(), getHudHeight()); + hudMatrix.setToOrtho2D(hud.x, hud.y, hud.width, hud.height); hudInvProjMatrix.set(hudMatrix); Matrix4.inv(hudInvProjMatrix.val); } @@ -99,22 +103,22 @@ public class GameCamera extends OrthographicCamera public int getHudLeft() { - return hudLeft; + return (int) hud.x; } public int getHudBottom() { - return hudBottom; + return (int) hud.y; } public int getHudWidth() { - return (int) window.width - (2 * getHudLeft()); + return (int) hud.width; } public int getHudHeight() { - return (int) window.height - (2 * getHudBottom()); + return (int) hud.height; } public void centerOnWorld() |