diff --git a/Projekte/mdga/client/src/main/java/pp/mdga/client/InputSynchronizer.java b/Projekte/mdga/client/src/main/java/pp/mdga/client/InputSynchronizer.java index 39732816..0c269d1e 100644 --- a/Projekte/mdga/client/src/main/java/pp/mdga/client/InputSynchronizer.java +++ b/Projekte/mdga/client/src/main/java/pp/mdga/client/InputSynchronizer.java @@ -277,6 +277,10 @@ public float getRotation() { return (rotationAngle / 2) % 360; } + public void setRotation(float rotationAngle){ + this.rotationAngle = rotationAngle; + } + /** * Gets the current scroll value. * diff --git a/Projekte/mdga/client/src/main/java/pp/mdga/client/MdgaApp.java b/Projekte/mdga/client/src/main/java/pp/mdga/client/MdgaApp.java index e037b9dd..20ade189 100644 --- a/Projekte/mdga/client/src/main/java/pp/mdga/client/MdgaApp.java +++ b/Projekte/mdga/client/src/main/java/pp/mdga/client/MdgaApp.java @@ -75,8 +75,8 @@ public static void main(String[] args) { AppSettings settings = new AppSettings(true); settings.setSamples(128); settings.setCenterWindow(true); - settings.setWidth(1080); - settings.setHeight(720); + settings.setWidth((int) (1920*0.9f)); + settings.setHeight((int) (1080*0.9f)); settings.setVSync(false); MdgaApp app = new MdgaApp(); @@ -107,7 +107,7 @@ public void simpleInitApp() { gameView = new GameView(this); ceremonyView = new CeremonyView(this); - enter(MdgaState.MAIN); + enter(MdgaState.GAME); } /** diff --git a/Projekte/mdga/client/src/main/java/pp/mdga/client/board/CameraHandler.java b/Projekte/mdga/client/src/main/java/pp/mdga/client/board/CameraHandler.java index 1404905d..1ec666dc 100644 --- a/Projekte/mdga/client/src/main/java/pp/mdga/client/board/CameraHandler.java +++ b/Projekte/mdga/client/src/main/java/pp/mdga/client/board/CameraHandler.java @@ -13,6 +13,7 @@ import com.jme3.util.SkyFactory; import com.jme3.util.SkyFactory.EnvMapType; import pp.mdga.client.MdgaApp; +import pp.mdga.game.Color; public class CameraHandler { MdgaApp app; @@ -29,11 +30,15 @@ public class CameraHandler { DirectionalLightShadowFilter dlsf; Spatial sky; + private Color ownColor; + private boolean init; + private boolean initRot; public CameraHandler(MdgaApp app, FilterPostProcessor fpp) { + init = false; + initRot = false; this.app = app; this.fpp = fpp; - // Save the default camera state this.defaultCameraPosition = app.getCamera().getLocation().clone(); this.defaultCameraRotation = app.getCamera().getRotation().clone(); @@ -56,11 +61,15 @@ public CameraHandler(MdgaApp app, FilterPostProcessor fpp) { } - public void init() { + public void init(Color ownColor) { app.getRootNode().addLight(sun); app.getRootNode().addLight(ambient); app.getRootNode().attachChild(sky); fpp.addFilter(dlsf); + init = true; + initRot = true; + this.ownColor = ownColor; + app.getInputSynchronize().setRotation(getInitAngleByColor(ownColor)*2); } public void shutdown() { @@ -76,6 +85,7 @@ public void shutdown() { } public void update(float scroll, float rotation) { + if(!init) return; float scrollValue = Math.max(0, Math.min(scroll, 100)); float rotationValue = rotation % 360; @@ -83,6 +93,7 @@ public void update(float scroll, float rotation) { rotationValue += 360; } + float radius; float verticalAngle; @@ -91,10 +102,10 @@ public void update(float scroll, float rotation) { radius = 30f; } else { verticalAngle = 90f; - rotationValue = 270f; + rotationValue = getAngleByColor(ownColor); radius = 50f; } - + System.out.println(rotationValue); float verticalAngleRadians = FastMath.DEG_TO_RAD * verticalAngle; float z = radius * FastMath.sin(verticalAngleRadians); @@ -107,4 +118,18 @@ public void update(float scroll, float rotation) { app.getCamera().lookAt(Vector3f.ZERO, Vector3f.UNIT_Z); } + private float getAngleByColor(Color color){ + return switch (color){ + case ARMY -> 0; + case AIRFORCE -> 90; + case NAVY -> 270; + case CYBER -> 180; + default -> throw new RuntimeException("None is not allowed"); + }; + } + + private float getInitAngleByColor(Color color){ + return (getAngleByColor(color) + 180) % 360; + } + } diff --git a/Projekte/mdga/client/src/main/java/pp/mdga/client/view/GameView.java b/Projekte/mdga/client/src/main/java/pp/mdga/client/view/GameView.java index 9708fb52..4edaadc5 100644 --- a/Projekte/mdga/client/src/main/java/pp/mdga/client/view/GameView.java +++ b/Projekte/mdga/client/src/main/java/pp/mdga/client/view/GameView.java @@ -58,9 +58,9 @@ public GameView(MdgaApp app) { @Override public void onEnter() { - camera.init(); - boardHandler.init(); setOwnColor(Color.AIRFORCE); + camera.init(ownColor); + boardHandler.init(); guiHandler.init(ownColor); app.getViewPort().addProcessor(fpp);