From 0d89bdf034217f84e38b014ec76ef122fd72212c Mon Sep 17 00:00:00 2001 From: Theo Champion Date: Tue, 19 Aug 2025 19:13:58 +0200 Subject: [PATCH] norme: Fixed norme error --- src/consts.h | 4 ++- src/sprites/move_sprites.c | 50 +++++++++++++++++++------------------- 2 files changed, 28 insertions(+), 26 deletions(-) diff --git a/src/consts.h b/src/consts.h index 97bb0c7..64b6616 100644 --- a/src/consts.h +++ b/src/consts.h @@ -6,7 +6,7 @@ /* By: kcolin +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/07/17 14:54:36 by kcolin #+# #+# */ -/* Updated: 2025/08/19 20:06:57 by tchampio ### ########.fr */ +/* Updated: 2025/08/19 20:07:14 by tchampio ### ########.fr */ /* */ /* ************************************************************************** */ @@ -40,6 +40,8 @@ # define DBLTAP_TEX "ressources/dbltap.xpm" # define MYSTERY_TEX "ressources/box.xpm" # define ZOMBIE_TEX "ressources/zombie.xpm" +// Approximated, value is actually MOVEMENT_SPEED / 1.5 +# define ZOMBIE_SPEED 0.0000033333 # ifdef BONUS # define COMPILED_TEXT "Compiled with bonuses" diff --git a/src/sprites/move_sprites.c b/src/sprites/move_sprites.c index 653930e..adb2099 100644 --- a/src/sprites/move_sprites.c +++ b/src/sprites/move_sprites.c @@ -6,7 +6,7 @@ /* By: kcolin +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/08/18 13:22:50 by kcolin #+# #+# */ -/* Updated: 2025/08/18 23:04:15 by tchampio ### ########.fr */ +/* Updated: 2025/08/19 19:13:02 by tchampio ### ########.fr */ /* */ /* ************************************************************************** */ @@ -14,42 +14,42 @@ #include "sprite.h" #include -void move_sprites(t_cub3d_data *data) +void make_move(t_cub3d_data *data, t_sprite *sprite) { - int i; double dx; double dy; double dist; double future_x; double future_y; - static double zombie_movement = MOVEMENT_SPEED / 1.5; + + future_x = sprite->x; + future_y = sprite->y; + dx = data->player.x - sprite->x; + dy = data->player.y - sprite->y; + dist = sqrt(dx * dx + dy * dy); + if (dist > 0.4) + { + dx /= dist; + dy /= dist; + future_x += dx * ZOMBIE_SPEED * data->delta; + future_y += dy * ZOMBIE_SPEED * data->delta; + if (data->map->map[(int)future_y][(int)sprite->x] != '1') + sprite->y = future_y; + if (data->map->map[(int)sprite->y][(int)future_x] != '1') + sprite->x = future_x; + } +} + +void move_sprites(t_cub3d_data *data) +{ + int i; i = 0; while (i < data->sprite_counter) { if (data->sprite_list[i]->sprite_type == ZOMBIE) { - future_x = data->sprite_list[i]->x; - future_y = data->sprite_list[i]->y; - 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; - future_x += dx * zombie_movement * data->delta; - future_y += dy * zombie_movement * data->delta; - if (data->map->map[(int)future_y][(int)data->sprite_list[i]->x] != '1') - data->sprite_list[i]->y = future_y; - if (data->map->map[(int)data->sprite_list[i]->y][(int)future_x] != '1') - data->sprite_list[i]->x = future_x; - } - if (dist < 0.4) - { - data->sprite_list[i]->x -= dx * zombie_movement * data->delta; - data->sprite_list[i]->y -= dy * zombie_movement * data->delta; - } + make_move(data, data->sprite_list[i]); } i++; }