Merge work #7

Merged
fkoppe merged 31 commits from dev/client_koppe into dev/client 2024-11-20 13:50:01 +01:00
2 changed files with 24 additions and 11 deletions
Showing only changes of commit d87acd46cc - Show all commits

View File

@@ -4,38 +4,46 @@
import com.jme3.light.DirectionalLight; import com.jme3.light.DirectionalLight;
import com.jme3.math.ColorRGBA; import com.jme3.math.ColorRGBA;
import com.jme3.math.Vector3f; import com.jme3.math.Vector3f;
import com.jme3.scene.Node;
import com.jme3.shadow.DirectionalLightShadowRenderer; import com.jme3.shadow.DirectionalLightShadowRenderer;
import pp.mdga.client.MdgaApp; import pp.mdga.client.MdgaApp;
public class CameraHandler { public class CameraHandler {
MdgaApp app; MdgaApp app;
private DirectionalLight sun;
private AmbientLight ambient;
private static final int SHADOWMAP_SIZE = 1024 * 8; private static final int SHADOWMAP_SIZE = 1024 * 8;
public CameraHandler(MdgaApp app){ public CameraHandler(MdgaApp app){
this.app = app; this.app = app;
initCamera();
sun = new DirectionalLight();
sun.setColor(ColorRGBA.White);
sun.setDirection(new Vector3f(0.3f, 0, -1));
ambient = new AmbientLight();
ambient.setColor(new ColorRGBA(0.3f, 0.3f, 0.3f, 1));
} }
private void initCamera() { public void init() {
app.getFlyByCamera().setEnabled(true); app.getFlyByCamera().setEnabled(true);
int zoom = 15; int zoom = 15;
app.getCamera().setLocation(new Vector3f(-zoom, 0, zoom)); app.getCamera().setLocation(new Vector3f(-zoom, 0, zoom));
app.getCamera().lookAt(new Vector3f(0, 0, 0), new Vector3f(0, 0, 1)); app.getCamera().lookAt(new Vector3f(0, 0, 0), new Vector3f(0, 0, 1));
DirectionalLight sun = new DirectionalLight();
sun.setColor(ColorRGBA.White);
sun.setDirection(new Vector3f(0.3f, 0, -1));
app.getRootNode().addLight(sun);
AmbientLight ambient = new AmbientLight();
ambient.setColor(new ColorRGBA(0.3f, 0.3f, 0.3f, 1));
app.getRootNode().addLight(ambient);
DirectionalLightShadowRenderer dlsr = new DirectionalLightShadowRenderer(app.getAssetManager(), SHADOWMAP_SIZE, 4); DirectionalLightShadowRenderer dlsr = new DirectionalLightShadowRenderer(app.getAssetManager(), SHADOWMAP_SIZE, 4);
dlsr.setLight(sun); dlsr.setLight(sun);
app.getViewPort().addProcessor(dlsr); app.getViewPort().addProcessor(dlsr);
app.getRootNode().addLight(sun);
app.getRootNode().addLight(ambient);
}
public void shutdown() {
app.getRootNode().removeLight(sun);
app.getRootNode().removeLight(ambient);
} }
} }

View File

@@ -1,12 +1,14 @@
package pp.mdga.client.view; package pp.mdga.client.view;
import pp.mdga.client.board.BoardHandler; import pp.mdga.client.board.BoardHandler;
import pp.mdga.client.board.CameraHandler;
import pp.mdga.client.dialog.SingleButtonRightDialog; import pp.mdga.client.dialog.SingleButtonRightDialog;
import pp.mdga.client.MdgaApp; import pp.mdga.client.MdgaApp;
import pp.mdga.client.MdgaState; import pp.mdga.client.MdgaState;
public class GameView extends MdgaView { public class GameView extends MdgaView {
private BoardHandler boardHandler; private BoardHandler boardHandler;
private CameraHandler camera;
private SingleButtonRightDialog continueButton; private SingleButtonRightDialog continueButton;
@@ -14,6 +16,7 @@ public GameView(MdgaApp app) {
super(app); super(app);
this.boardHandler = new BoardHandler(app); this.boardHandler = new BoardHandler(app);
this.camera = new CameraHandler(app);
continueButton = new SingleButtonRightDialog(app, node, "Weiter", () -> app.enter(MdgaState.CEREMONY)); continueButton = new SingleButtonRightDialog(app, node, "Weiter", () -> app.enter(MdgaState.CEREMONY));
} }
@@ -21,6 +24,7 @@ public GameView(MdgaApp app) {
@Override @Override
public void onEnter() { public void onEnter() {
boardHandler.init(); boardHandler.init();
camera.init();
continueButton.show(); continueButton.show();
} }
@@ -29,6 +33,7 @@ public void onEnter() {
public void onLeave() { public void onLeave() {
continueButton.hide(); continueButton.hide();
camera.shutdown();
boardHandler.shutdown(); boardHandler.shutdown();
} }
} }