aboutsummaryrefslogtreecommitdiff
path: root/src/engine/entity.h
diff options
context:
space:
mode:
authorUnavailableDev <69792062+UnavailableDev@users.noreply.github.com>2023-03-22 10:42:34 +0100
committerGitHub <noreply@github.com>2023-03-22 10:42:34 +0100
commit7f51cd925883bbf958baa289d4d19231667c9eba (patch)
tree21800c4233b3be015cb9aa1f1448b2ab4db4c832 /src/engine/entity.h
parente43428eef0d96839cd9a5b2d25e31c90555cfb6c (diff)
parent49112a1999c008fb6fa6c9c368eb2be0d92d15dc (diff)
Merge pull request #44 from UnavailableDev/game-engine
Game engine
Diffstat (limited to 'src/engine/entity.h')
-rw-r--r--src/engine/entity.h25
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);
+
+