aboutsummaryrefslogtreecommitdiff
path: root/src/engine/entity.c
diff options
context:
space:
mode:
authorUnavailableDev <ggwildplay@gmail.com>2023-03-13 09:57:34 +0100
committerUnavailableDev <ggwildplay@gmail.com>2023-03-13 09:57:34 +0100
commit5c4bf7d451135cd3af3e51976251f01cbb6e6573 (patch)
tree82990aa7c7df22c0888543a87dbd05799217cc99 /src/engine/entity.c
parentbb2839a81d64e8644c57d83806ae41cc4cfad9dd (diff)
camera, movement, collisions
Diffstat (limited to 'src/engine/entity.c')
-rw-r--r--src/engine/entity.c41
1 files changed, 23 insertions, 18 deletions
diff --git a/src/engine/entity.c b/src/engine/entity.c
index 1dc1df8..152cf1d 100644
--- a/src/engine/entity.c
+++ b/src/engine/entity.c
@@ -1,6 +1,6 @@
#include <stdbool.h>
-#include "engine/hh_entity.h"
+#include "engine/entity.h"
#include "engine/maths.h"
/*
@@ -12,30 +12,35 @@
*/
-bool hh_collision(vec2* pos1, vec2* pos2){
- if (pos2->x == CLAMP(pos2->x,pos1->x,pos1->x+1.0f)){// hit x
+bool hh_collision(vec_cor pos1, vec2 pos2){
+ if (pos2.x == CLAMP(pos2.x, pos1.x, pos1.x+16)){// hit x
return true;
}
- if (pos2->y == CLAMP(pos2->y,pos1->y,pos1->y+0.99f)){// hit y
+ if (pos2.y == CLAMP(pos2.y, pos1.y, pos1.y+16)){// hit y
return true;
}
return false;
}
-void hh_solve_collision(vec2* pos_environment, hh_entity* entity){
- if (entity->vec.x > 0.0f){
- entity->pos.x = MIN(entity->pos.x,pos_environment->x-1.0f);
- entity->vec.x = 0.0f;
- } else if (entity->vec.x < 0.0f){
- entity->pos.x = MAX(entity->pos.x,pos_environment->x+1.0f);
- entity->vec.x = 0.0f;
- } else if (entity->vec.y > 0.0f){
- entity->pos.x = MIN(entity->pos.x,pos_environment->x-1.0f);
- entity->vec.x = 0.0f;
- } else if (entity->vec.y < 0.0f){
- entity->pos.x = MAX(entity->pos.x,pos_environment->x+1.0f);
- entity->vec.x = 0.0f;
- }
+void hh_solve_collision(vec2 pos_environment, hh_entity* entity){
+ if (!hh_collision(pos_environment,entity->pos))
+ return;
+
+ printf("BONK!/n");
+ // if (entity->vec.y > 0){
+ // entity->pos.y = MAX(entity->pos.y,pos_environment.y);
+ // entity->vec.y = 0;
+ // } else {
+ // entity->pos.y = MIN(entity->pos.y,pos_environment.y);
+ // entity->vec.y = 0;
+ // }
+ // if (entity->vec.x <= 0){
+ // entity->pos.x = MIN(entity->pos.x,pos_environment.x-16);
+ // entity->vec.x = 0;
+ // } else {
+ // entity->pos.x = MAX(entity->pos.x,pos_environment.x+16);
+ // entity->vec.x = 0;
+ // }
}