summaryrefslogtreecommitdiffhomepage
path: root/src/player.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/player.c')
-rw-r--r--src/player.c28
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);
}