diff options
| author | arngo <[email protected]> | 2023-05-26 17:33:14 -0400 |
|---|---|---|
| committer | arngo <[email protected]> | 2023-05-26 17:33:14 -0400 |
| commit | 92a20f1c3f48eb0c6bf04585b8bb3ab0aea5c99a (patch) | |
| tree | 4edb1d4eb4065c3272a245235fb7b945c62e3a82 /src/player.c | |
| parent | 16afc70b4e30668ae65b241c8502d9747f2a139e (diff) | |
| download | TOJam2023-92a20f1c3f48eb0c6bf04585b8bb3ab0aea5c99a.tar.gz TOJam2023-92a20f1c3f48eb0c6bf04585b8bb3ab0aea5c99a.zip | |
implement player damage from touching enemies
Diffstat (limited to 'src/player.c')
| -rw-r--r-- | src/player.c | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/src/player.c b/src/player.c index ef9a2a3..d9a87d2 100644 --- a/src/player.c +++ b/src/player.c @@ -1,6 +1,7 @@ #include "rodeo.h" #include "input.h" #include "player.h" +#include "enemies.h" #include "rodeo/collision.h" #include "sprite.h" @@ -9,7 +10,7 @@ struct player_t sprite_t sprite; rodeo_texture_2d_t texture; int32_t hp; - float damage_timer; + float damage_timer; //ms world_id collision_id; } player; @@ -45,8 +46,8 @@ init_player(void) .height = 128, .count = 61 } -}; - + }; + player.hp = 100; } void @@ -133,17 +134,26 @@ void player_enemy_resolver( rodeo_collision_2d_world_item_t *enemy_collision ) { - if (player.damage_cooldown > 1.0) { - player.hp -= 10; - player.damage_cooldown = 0; - } if (player.hp <= 0) { - //game over + rodeo_log( + rodeo_logLevel_info, + "player is dead" + ); + } else if (player.damage_timer > 1000.0) { + rodeo_log( + rodeo_logLevel_info, + "player health is now %d", + player.hp + ); + player.hp -= 10; + player.damage_timer = 0; } + } void detect_player_enemy_collisions(void) { - + player.damage_timer += rodeo_frame_time_get(); + rodeo_collision_2d_world_compare_other(&player_collision_world, get_enemies_world(), player_enemy_resolver); } |
