From d1d8033b77fe9fcd7f28f1a2f0d8c9112918cef6 Mon Sep 17 00:00:00 2001 From: En Yi Date: Tue, 3 Oct 2023 22:04:26 +0800 Subject: [PATCH] Only apply new behaviour to x direction only --- scenes/game_systems.c | 6 ++++-- scenes/scene_systems.c | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/scenes/game_systems.c b/scenes/game_systems.c index 1cb0ff7..58202ae 100644 --- a/scenes/game_systems.c +++ b/scenes/game_systems.c @@ -1809,14 +1809,15 @@ void camera_update_system(Scene_t* scene) target_pos = p_ctransform->position; target_vel = p_ctransform->velocity; CMovementState_t* p_movement = get_component(p_player, CMOVEMENTSTATE_T); - target_pos.x += (p_movement->x_dir == 1) ? width/8: -width/8; - target_pos.y -= height / 8; + target_pos.x += (p_movement->x_dir == 1) ? width/6: -width/6; + //target_pos.y -= height / 8; //target_pos.y += p_ctransform->velocity.y * 0.08; } // Mass-Spring damper update Vector2 x = Vector2Subtract(target_pos, data->camera.cam.target); Vector2 v = Vector2Subtract(data->camera.current_vel, target_vel); + //Vector2 v = data->camera.current_vel; Vector2 F = Vector2Subtract( Vector2Scale(x, data->camera.k), @@ -1834,6 +1835,7 @@ void camera_update_system(Scene_t* scene) Vector2Scale(a_dt, dt*0.5f) ) ); + data->camera.cam.target.y = target_pos.y; data->camera.current_vel = Vector2Add(data->camera.current_vel, a_dt); Vector2 max = GetWorldToScreen2D( diff --git a/scenes/scene_systems.c b/scenes/scene_systems.c index 6d6a3bb..d9d7f74 100644 --- a/scenes/scene_systems.c +++ b/scenes/scene_systems.c @@ -14,8 +14,8 @@ void init_level_scene_data(LevelSceneData_t* data, uint32_t max_tiles, Tile_t* t memset(&data->camera, 0, sizeof(LevelCamera_t)); data->camera.cam.rotation = 0.0f; data->camera.cam.zoom = 1.0f; - data->camera.mass = 0.33f; - data->camera.k = 3.2f; + data->camera.mass = 0.2f; + data->camera.k = 6.2f; data->camera.c = 2.2f; data->tilemap.max_tiles = max_tiles;