From e5d9814f121ad378b2364806b2a4791e86654382 Mon Sep 17 00:00:00 2001 From: Dominik Kaiser Date: Wed, 15 May 2024 15:21:18 +0200 Subject: Make collision functions more generic --- src/collision.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) (limited to 'src') diff --git a/src/collision.c b/src/collision.c index f7ab7ec..115b70a 100644 --- a/src/collision.c +++ b/src/collision.c @@ -6,14 +6,14 @@ /* By: dkaiser tile_size); - wall.size.x = map->tile_size.x; - wall.size.y = map->tile_size.y; - return (check_collision(collider, wall)); + tile_collider.position = grid_to_screen_pos(tile, map->tile_size); + tile_collider.size.x = map->tile_size.x; + tile_collider.size.y = map->tile_size.y; + return (check_collision(collider, tile_collider)); } return (0); } @@ -89,13 +89,13 @@ void move_and_slide(t_actor *actor, t_tilemap *map, double delta_time) c.size = actor->size; c.position.x = actor->position.x + (actor->velocity.x * delta_time); c.position.y = actor->position.y; - if ((check_wall_collision(c, map) & (RIGHT | LEFT)) == 0) + if ((check_map_collision(c, map, WALL) & (RIGHT | LEFT)) == 0) actor->position.x = c.position.x; else actor->velocity.x = 0; c.position.x = actor->position.x; c.position.y = actor->position.y + (actor->velocity.y * delta_time); - if ((check_wall_collision(c, map) & (UP | DOWN)) == 0) + if ((check_map_collision(c, map, WALL) & (UP | DOWN)) == 0) actor->position.y = c.position.y; else actor->velocity.y = 0; @@ -104,7 +104,7 @@ void move_and_slide(t_actor *actor, t_tilemap *map, double delta_time) int is_on_floor(t_collider collider, t_tilemap *map) { collider.position.y += 5; - if (check_wall_collision(collider, map)) + if (check_map_collision(collider, map, WALL)) return (1); return (0); } -- cgit v1.2.3