cub3d/src/monster/monster.c
2025-06-03 14:54:24 +02:00

39 lines
1.4 KiB
C

/* ************************************************************************** */
/* */
/* :::::::: */
/* monster.c :+: :+: */
/* +:+ */
/* By: qmennen <qmennen@student.codam.nl> +#+ */
/* +#+ */
/* Created: 2025/05/28 17:15:52 by qmennen #+# #+# */
/* Updated: 2025/06/03 14:51:23 by whaffman ######## odam.nl */
/* */
/* ************************************************************************** */
#include "cub3d.h"
void update_monsters(t_game *game)
{
int i;
t_vec2 d;
t_sprite *sprite;
double dist_squared;
double inv_dist;
i = -1;
while (++i < game->map->n_sprites)
{
sprite = &game->map->sprites[i];
if (sprite->type != SPRITE_TYPE_ENEMY)
continue ;
d = sub(game->player->pos, sprite->pos);
dist_squared = d.x * d.x + d.y * d.y;
if (dist_squared >= 0.02)
{
inv_dist = 1.0 / sqrt(dist_squared);
sprite->pos.x += d.x * inv_dist * .05f;
sprite->pos.y += d.y * inv_dist * .05f;
}
}
}