From 1311c2f0b7195b3f37a32c54e79f3fd67b09357d Mon Sep 17 00:00:00 2001 From: En Yi Date: Wed, 22 Nov 2023 21:04:00 +0800 Subject: [PATCH] Fix ground check Use line check instead of box check --- engine/collisions.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/engine/collisions.c b/engine/collisions.c index 0e05256..755c2c1 100644 --- a/engine/collisions.c +++ b/engine/collisions.c @@ -181,17 +181,18 @@ bool check_on_ground(Entity_t* p_ent, Vector2 pos, Vector2 prev_pos, Vector2 bbo Vector2 new_pos = Vector2Add(pos, (Vector2){0, 1}); CollideEntity_t ent = { .p_ent = p_ent, - .bbox = (Rectangle){new_pos.x, new_pos.y + bbox_sz.y - 1, bbox_sz.x, 1}, + .bbox = (Rectangle){new_pos.x, new_pos.y + bbox_sz.y, bbox_sz.x, 1}, .prev_bbox = (Rectangle){prev_pos.x, prev_pos.y, bbox_sz.x, bbox_sz.y}, .area = (TileArea_t){ .tile_x1 = (new_pos.x) / grid->tile_size, - .tile_y1 = (new_pos.y + bbox_sz.y - 1) / grid->tile_size, - .tile_x2 = (new_pos.x + bbox_sz.x - 1) / grid->tile_size, - .tile_y2 = (new_pos.y + bbox_sz.y - 1) / grid->tile_size + .tile_y1 = (new_pos.y + bbox_sz.y) / grid->tile_size, + .tile_x2 = (new_pos.x + bbox_sz.x) / grid->tile_size, + .tile_y2 = (new_pos.y + bbox_sz.y) / grid->tile_size } }; - return check_collision(&ent, grid, true); + return check_collision_line(&ent, grid, false); + //return check_collision(&ent, grid, true); } uint8_t check_bbox_edges(