From 29c701ce6ab7e128fcd7cd2022001256e63653ac Mon Sep 17 00:00:00 2001 From: fnicon Date: Sat, 21 Mar 2026 12:01:06 +0900 Subject: [PATCH] fix infinite drift --- game/love_src/src/world/top_down_race/init.lua | 4 ++-- .../src/world/top_down_race/system/velocity.lua | 17 ++++++++++++++++- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/game/love_src/src/world/top_down_race/init.lua b/game/love_src/src/world/top_down_race/init.lua index aaa5998..901cb39 100644 --- a/game/love_src/src/world/top_down_race/init.lua +++ b/game/love_src/src/world/top_down_race/init.lua @@ -31,8 +31,8 @@ function wrapper:load(_args) { assemblage = racer.assemble, data = { - accel = 20.0, - brake = 10.0, + accel = 200.0, + brake = 100.0, grip = 1.0, max_speed = 50.0, steer = 5.0, diff --git a/game/love_src/src/world/top_down_race/system/velocity.lua b/game/love_src/src/world/top_down_race/system/velocity.lua index d94761d..587468a 100644 --- a/game/love_src/src/world/top_down_race/system/velocity.lua +++ b/game/love_src/src/world/top_down_race/system/velocity.lua @@ -238,7 +238,8 @@ local magic_n = { scale_y = 1000.0, centrifugal_r = 1.0, magic_slowdown = 10.0, - magic_boost = 1000.0 + magic_boost = 10000.0, + magic_slow_drift = 10.0 } function system:update(dt) @@ -285,6 +286,20 @@ function system:update(dt) local centrifugal = racing_phy.centrifugal_force(dt, mass, new_velocity * magic_n.centrifugal_r, max_speed) f_lateral = add_centrifugal(f_lateral, centrifugal) + if (not left and not right) then + if (not (left) and f_lateral > 0) then + f_lateral = f_lateral - (magic_n.magic_slow_drift) + if (f_lateral < 0) then + f_lateral = 0 + end + elseif (not right and f_lateral < 0) then + f_lateral = f_lateral + (magic_n.magic_slow_drift) + if (f_lateral > 0) then + f_lateral = 0 + end + end + end + e[race.dict.inertia].data = {f_forward * dt, f_lateral * dt} local new_angle = e["race.angle"].data + f_lateral * dt/mass