From b285bd073479a8e13e7eb76facb13032ae1c2fc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Przemys=C5=82aw=20Pluta?= Date: Wed, 17 Aug 2022 12:27:00 +0200 Subject: [PATCH] Make camera follows player --- .../demo/map/BaseMapHandler.java | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/bartlomiejpluta/demo/map/BaseMapHandler.java b/src/main/java/com/bartlomiejpluta/demo/map/BaseMapHandler.java index 9f65a00..b17d35f 100644 --- a/src/main/java/com/bartlomiejpluta/demo/map/BaseMapHandler.java +++ b/src/main/java/com/bartlomiejpluta/demo/map/BaseMapHandler.java @@ -5,20 +5,34 @@ import com.bartlomiejpluta.base.api.map.model.GameMap; import com.bartlomiejpluta.base.api.map.layer.object.ObjectLayer; import com.bartlomiejpluta.base.api.context.Context; import com.bartlomiejpluta.base.api.move.Direction; +import com.bartlomiejpluta.base.api.screen.Screen; +import com.bartlomiejpluta.base.api.camera.Camera; import com.bartlomiejpluta.base.api.input.*; +import com.bartlomiejpluta.base.lib.camera.*; + import com.bartlomiejpluta.demo.runner.DemoRunner; import com.bartlomiejpluta.demo.entity.Player; public abstract class BaseMapHandler implements MapHandler { + protected Screen screen; protected Context context; + protected DemoRunner runner; + protected Camera camera; protected Player player; protected ObjectLayer mainLayer; + protected CameraController cameraController; @Override public void onCreate(Context context, GameMap map) { this.context = context; - this.player = ((DemoRunner) context.getGameRunner()).getPlayer(); + this.screen = context.getScreen(); + this.runner = (DemoRunner) context.getGameRunner(); + this.camera = context.getCamera(); + this.player = runner.getPlayer(); + this.cameraController = FollowingCameraController + .on(screen, camera, map) + .follow(player.getPosition()); } @Override @@ -33,4 +47,9 @@ public abstract class BaseMapHandler implements MapHandler { mainLayer.pushMovement(player.prepareMovement(Direction.RIGHT)); } } + + @Override + public void update(Context context, GameMap map, float dt) { + cameraController.update(); + } } \ No newline at end of file