diff options
| author | realtradam <[email protected]> | 2023-05-26 18:51:03 -0400 |
|---|---|---|
| committer | realtradam <[email protected]> | 2023-05-26 18:51:03 -0400 |
| commit | 4a0a58b0a7804d78dc9569f7d2902a24abbbfe96 (patch) | |
| tree | f0ce00c23f41dbfe5e5d1f06cb82c54cad272409 /src/enemies.c | |
| parent | 272924609d8b9aa64c03046f4f22db1a2efcd46b (diff) | |
| download | TOJam2023-4a0a58b0a7804d78dc9569f7d2902a24abbbfe96.tar.gz TOJam2023-4a0a58b0a7804d78dc9569f7d2902a24abbbfe96.zip | |
enemy follow
Diffstat (limited to 'src/enemies.c')
| -rw-r--r-- | src/enemies.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/enemies.c b/src/enemies.c index 7073a1b..07216ca 100644 --- a/src/enemies.c +++ b/src/enemies.c @@ -1,5 +1,6 @@ #include "enemies.h" #include "bullet.h" +#include <math.h> static rodeo_collision_2d_world_t collision_enemies_world; static rodeo_texture_2d_t enemy_texture; @@ -54,6 +55,18 @@ draw_enemies(void) } } +void +move_enemies(void) +{ + c_foreach(i, cvec_enemy_t, enemies) { + rodeo_collision_2d_world_item_t *enemy = rodeo_collision_2d_world_item_get_by_id(i.ref->id); + enemy->x += enemy->dx; + enemy->dx = 0; + enemy->y += enemy->dy; + enemy->dy = 0; + } +} + enemy_t* get_enemy_by_id( world_id id @@ -108,3 +121,23 @@ detect_bullet_enemy_collisions(void) { rodeo_collision_2d_world_compare_other(&collision_enemies_world, get_player_bullet_world(), damage_enemy_resolver); } + +void +group_follow_target(rodeo_collision_2d_world_item_t *target) +{ + c_foreach(i, cvec_enemy_t, enemies) { + rodeo_collision_2d_world_item_t *enemy = rodeo_collision_2d_world_item_get_by_id(i.ref->id); + float direction[2] = { + target->x - enemy->x, + target->y - enemy->y + }; + float mag = sqrtf(direction[0] * direction[0] + direction[1] * direction[1]); + direction[0] /= mag; + direction[1] /= mag; + + enemy->dx = direction[0]; + enemy->dy = direction[1]; + } + + +} |
