summaryrefslogtreecommitdiffhomepage
path: root/src/player.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/player.c')
-rw-r--r--src/player.c30
1 files changed, 20 insertions, 10 deletions
diff --git a/src/player.c b/src/player.c
index 01bb98b..a12a4d7 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;
move_state_t move_state;
}
@@ -46,8 +47,8 @@ init_player(void)
.height = 128,
.count = 61
}
-};
-
+ };
+ player.hp = 100;
}
void
@@ -157,23 +158,32 @@ player_shoot(rodeo_collision_2d_world_t *bullet_collision_world)
);
}
}
-/*
+
void player_enemy_resolver(
rodeo_collision_2d_world_item_t *player_collision,
rodeo_collision_2d_world_item_t *enemy_collision
)
{
- if (player.damage_timer > 1.0) {
+ if (player.hp <= 0) {
+ 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;
}
- if (player.hp <= 0) {
- //game over
- }
+
}
-*/
+
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);
}