diff options
author | UnavailableDev <ggwildplay@gmail.com> | 2023-03-13 09:57:34 +0100 |
---|---|---|
committer | UnavailableDev <ggwildplay@gmail.com> | 2023-03-13 09:57:34 +0100 |
commit | 5c4bf7d451135cd3af3e51976251f01cbb6e6573 (patch) | |
tree | 82990aa7c7df22c0888543a87dbd05799217cc99 /src/engine/camera.c | |
parent | bb2839a81d64e8644c57d83806ae41cc4cfad9dd (diff) |
camera, movement, collisions
Diffstat (limited to 'src/engine/camera.c')
-rw-r--r-- | src/engine/camera.c | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/src/engine/camera.c b/src/engine/camera.c index 46c2d93..e756bd4 100644 --- a/src/engine/camera.c +++ b/src/engine/camera.c @@ -5,8 +5,26 @@ vec_cor hh_update_camera(vec_cen new, vec2 min, vec2 max){ - new = vec_cen2cor(new,(vec2){.x=20,.y=30}); + //TODO: change floating point math to fix point math + //TODO: fix buggy y-axis ?? + + // new = vec_cen2cor(new,(vec2){.x=max.x/2,.y=max.y/2}); + new = vec_cen2cor((vec2){.x=new.x+(HH_PPU_SPRITE_WIDTH/2),.y=(new.y+(HH_PPU_SPRITE_HEIGHT/2))*2},(vec2){.x=max.x/2,.y=max.y/2}); + // new.x = new.x << HH_MATH_FIXED_POINT; + // new.y = new.y << HH_MATH_FIXED_POINT; static vec_cor old; + // old.x = old.x << HH_MATH_FIXED_POINT; + // old.y = old.y << HH_MATH_FIXED_POINT; + + // int16_t some = 0; + // some = some <<= HH_MATH_FIXED_POINT-1; + + new.x = (int)((float)new.x*0.1f + (float)old.x*0.9f); + new.y = (int)((float)new.y*0.1f + (float)old.y*0.9f); + + // old.x = old.x >> HH_MATH_FIXED_POINT; + // old.y = old.y >> HH_MATH_FIXED_POINT; + old.x = CLAMP(new.x,min.x,max.x); old.y = CLAMP(new.y,min.y,max.y); |