summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorrealtradam <[email protected]>2023-05-26 17:51:01 -0400
committerrealtradam <[email protected]>2023-05-26 17:51:01 -0400
commit272924609d8b9aa64c03046f4f22db1a2efcd46b (patch)
tree010a6bb56f80cde00b2feead60c5304067a0ffa4
parent579ad3f7efac9205fc5b2fac66b9e83e5de8a404 (diff)
parent41952aa435d9443dc7a96d2c59506cfe5c426328 (diff)
downloadTOJam2023-272924609d8b9aa64c03046f4f22db1a2efcd46b.tar.gz
TOJam2023-272924609d8b9aa64c03046f4f22db1a2efcd46b.zip
Merge branch 'master' of github.com:realtradam/TOJam2023
-rw-r--r--src/enemies.c4
-rw-r--r--src/enemies.h2
-rw-r--r--src/main.c3
-rw-r--r--src/player.c30
4 files changed, 25 insertions, 14 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
diff --git a/src/main.c b/src/main.c
index 1078f46..0b6c15a 100644
--- a/src/main.c
+++ b/src/main.c
@@ -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 eef5007..e913b50 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);
}