diff options
author | UnavailableDev <ggwildplay@gmail.com> | 2023-03-22 10:29:24 +0100 |
---|---|---|
committer | UnavailableDev <ggwildplay@gmail.com> | 2023-03-22 10:29:24 +0100 |
commit | cd9f96be0d1ca49f269d8dc7c801479ef382d21b (patch) | |
tree | d3768b4d9a8ef8cb1c6ee5e6dcea785adb902d5c /src/engine/entity.h | |
parent | 439be80c80498586a299c28ce1be3ea765b414a9 (diff) | |
parent | 746b9a43b745e6f7cbac4cbe529d3f5f719d1eea (diff) |
Merge branch 'dev' of https://github.com/heavydemon21/avans-arcade into game-engine
Diffstat (limited to 'src/engine/entity.h')
-rw-r--r-- | src/engine/entity.h | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/engine/entity.h b/src/engine/entity.h index f45dae2..cad6ba4 100644 --- a/src/engine/entity.h +++ b/src/engine/entity.h @@ -2,6 +2,7 @@ #include <stdint.h> #include <stdbool.h> +#include <stdio.h> #include "ppu/types.h" @@ -32,6 +33,8 @@ typedef struct { typedef struct { vec2 pos, vel, vec; bool is_grounded; + bool is_hit; + uint8_t radius; int8_t hp; int8_t speed; hh_s_rendering render; @@ -55,3 +58,25 @@ bool hh_collision(vec2 pos1, vec2 pos2); /// @param entity position /// @return solved new entity position void hh_solve_collision(vec2 pos_environment, hh_entity* entity); + +/// @brief solve collision of entity with background tiles +/// @param temp_old_entity old data of entity +/// @param temp_new_entity new data of entity where it wants to go to +/// @return updated new entity where it actually can go to +hh_entity hh_background_collision (hh_entity temp_old_entity, hh_entity temp_new_entity); + +/// @brief solve collision of player with enemy +/// @param temp_player data of player +/// @param temp_enemy data of enemy +/// @return updated player with new stats if hitted with enemy +hh_entity hh_enemy_collision(hh_entity temp_player, hh_entity temp_enemy); + +/// @brief calculate if circles (entity) hit each other +/// @param object_1 position of first object (entity) +/// @param object_2 position of second object (entity) +/// @param radius_1 radius of first object (entity) +/// @param radius_2 radius of second object (entity) +/// @return true if objects collids +bool hh_distance_circles (vec2 object_1, vec2 object_2, int radius_1, int radius_2); + + |