From 4e51f01ceabc6d961a51c402d086c8bc34d9ebc3 Mon Sep 17 00:00:00 2001 From: En Yi Date: Sat, 25 Jan 2025 17:00:52 +0800 Subject: [PATCH] Fix urchin sometimes not bouncing --- scenes/game_systems.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scenes/game_systems.c b/scenes/game_systems.c index e7d2bb9..0fe08bf 100644 --- a/scenes/game_systems.c +++ b/scenes/game_systems.c @@ -878,7 +878,7 @@ void tile_collision_system(Scene_t* scene) if ((collide_side & (1<<2)) || (collide_side & (1<<3))) { Vector2 check_pos = p_ent->position; - check_pos.x += p_ctransform->velocity.x * scene->delta_time; + check_pos.x += (signbit(p_ctransform->velocity.x) ? -1: 1); if (check_collision_at(p_ent, check_pos, p_bbox->size, &tilemap)) { p_ctransform->velocity.x *= -p_ctransform->bounce_coeff; @@ -889,7 +889,7 @@ void tile_collision_system(Scene_t* scene) if ((collide_side & (1<<1)) || (collide_side & (1))) { Vector2 check_pos = p_ent->position; - check_pos.y += p_ctransform->velocity.y * scene->delta_time; + check_pos.y += (signbit(p_ctransform->velocity.y) ? -1: 1); if (check_collision_at(p_ent, check_pos, p_bbox->size, &tilemap)) { p_ctransform->velocity.y *= -p_ctransform->bounce_coeff;