39 lines
1.4 KiB
C
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;
|
|
}
|
|
}
|
|
}
|