From 943348e5458bac1fa97066abf9908829974b8ebc Mon Sep 17 00:00:00 2001 From: KikooDX Date: Sun, 27 Dec 2020 23:53:34 +0100 Subject: [PATCH] Changed meaning of origin --- include/player.h | 2 +- src/collide.c | 1 - src/main.c | 2 +- src/player.c | 4 ++-- 4 files changed, 4 insertions(+), 5 deletions(-) diff --git a/include/player.h b/include/player.h index 23f4eaa..589b340 100644 --- a/include/player.h +++ b/include/player.h @@ -8,7 +8,7 @@ typedef struct Player { Vec spd; /* velocity */ Vec hbox; /* the bottom left corner of the player's hitbox */ Vec vbox; /* the bottom left corner of the player's visual box */ - Vec origin; /* the origin of the player (offset) */ + Vec origin; /* the origin of the sprite (offset) */ uint grace; /* coyot jump */ } Player; diff --git a/src/collide.c b/src/collide.c index b8170e8..89cd459 100644 --- a/src/collide.c +++ b/src/collide.c @@ -21,7 +21,6 @@ uint8_t collide_point(Vec point, const Level *level, uint layer_id) { bool player_collide(Player *player, Vec position, const Level *level, uint layer_id) { Vec pos; vec_cpy(&pos, position); - vec_sub(&pos, player->origin); if (collide_point(pos, level, layer_id)) { return true; } diff --git a/src/main.c b/src/main.c index 8e73870..81f0728 100644 --- a/src/main.c +++ b/src/main.c @@ -36,7 +36,7 @@ int play_level(uint level_id) { .origin = {0 * VEC_PRECISION, 0 * VEC_PRECISION}, .grace = 0 }; - vec_cpy(&player.pos, player.origin); /* place the player at "0/0"*/ + vec_cpy(&player.pos, (Vec){0, 0}); /* place the player at "0/0"*/ /* set level */ const Level *level; diff --git a/src/player.c b/src/player.c index 81e5db2..cf67e95 100644 --- a/src/player.c +++ b/src/player.c @@ -20,7 +20,7 @@ #define PLAYER_COLLIDE(pos) player_collide(player, pos, level, level->solid_layer) void player_move(Player *player, const Level *level) { - /* TODO: Take into account player.origin. */ + /* TODO: Take into account player's hitbox */ const int sgn_spd_x = SGN(player->spd.x); const int sgn_spd_y = SGN(player->spd.y); Vec destination; @@ -90,7 +90,7 @@ void player_draw(Player *player, Camera *camera) { /* The rest of this function calculates the player on screen * position and draw it. */ vec_cpy(&tl, player->pos); - vec_sub(&tl, player->origin); + vec_add(&tl, player->origin); vec_cpy(&br, tl); vec_div(&tl, VEC_PRECISION); vec_div(&br, VEC_PRECISION);