diff options
| -rw-r--r-- | src/enemies.c | 4 | ||||
| -rw-r--r-- | src/enemies.h | 2 | ||||
| -rw-r--r-- | src/main.c | 3 | ||||
| -rw-r--r-- | src/player.c | 28 |
4 files changed, 24 insertions, 13 deletions
diff --git a/src/enemies.c b/src/enemies.c index a8705ed..7073a1b 100644 --- a/src/enemies.c +++ b/src/enemies.c @@ -67,10 +67,10 @@ get_enemy_by_id( return NULL; } -rodeo_collision_2d_world_t +rodeo_collision_2d_world_t * get_enemies_world(void) { - return collision_enemies_world; + return &collision_enemies_world; } cvec_enemy_t diff --git a/src/enemies.h b/src/enemies.h index b5cc916..988ea22 100644 --- a/src/enemies.h +++ b/src/enemies.h @@ -34,7 +34,7 @@ get_enemy_by_id( world_id id ); -rodeo_collision_2d_world_t +rodeo_collision_2d_world_t * get_enemies_world(void); cvec_enemy_t @@ -189,6 +189,7 @@ main_loop(void) draw_player(); draw_enemies(); detect_bullet_enemy_collisions(); + detect_player_enemy_collisions(); rodeo_debug_text_draw( 1, @@ -271,7 +272,7 @@ main(void) init_player(); init_enemies(); spawn_enemy(240, 240); - spawn_enemy(100, 100); + //spawn_enemy(100, 100); spawn_enemy(300, 100); spawn_enemy(200, 330); 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); } |
