From 2de1b0018aab0fd15bf64a14642bdbc948ab13bd Mon Sep 17 00:00:00 2001 From: Theo Champion Date: Mon, 18 Aug 2025 19:52:14 +0200 Subject: [PATCH] feat: finished zombie movements code --- src/sprites/move_sprites.c | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/src/sprites/move_sprites.c b/src/sprites/move_sprites.c index 49f6e48..4cbdcbb 100644 --- a/src/sprites/move_sprites.c +++ b/src/sprites/move_sprites.c @@ -6,23 +6,39 @@ /* By: kcolin +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/08/18 13:22:50 by kcolin #+# #+# */ -/* Updated: 2025/08/18 13:57:39 by kcolin ### ########.fr */ +/* Updated: 2025/08/18 19:51:41 by tchampio ### ########.fr */ /* */ /* ************************************************************************** */ #include "move_sprites.h" #include "sprite.h" #include "../../libft/includes/libft.h" +#include void move_sprites(t_cub3d_data *data) { - int i; + int i; + double dx; + double dy; + double dist; + static double zombie_movement = MOVEMENT_SPEED / 1.5; i = 0; while (i < data->sprite_counter) { if (data->sprite_list[i]->sprite_type == ZOMBIE) - data->sprite_list[i]->x += MOVEMENT_SPEED * data->delta; + { + dx = data->player.x - data->sprite_list[i]->x; + dy = data->player.y - data->sprite_list[i]->y; + dist = sqrt(dx * dx + dy * dy); + if (dist > 0.0001) + { + dx /= dist; + dy /= dist; + data->sprite_list[i]->x += dx * zombie_movement * data->delta; + data->sprite_list[i]->y += dy * zombie_movement * data->delta; + } + } i++; } }