Vel instead of px

This commit is contained in:
2025-06-18 22:17:02 -05:00
parent 3f22665e21
commit 04158a1ad2
3 changed files with 27 additions and 17 deletions

View File

@ -42,4 +42,7 @@ void entityUpdate(entity_t *entity) {
);
ENTITY_CALLBACKS[entity->type].update(entity);
entity->x += entity->vx;
entity->y += entity->vy;
}

View File

@ -32,47 +32,54 @@ void playerNPCUpdate(entity_t *entity) {
if(inputIsDown(INPUT_BIND_UP)) {
if(inputIsDown(INPUT_BIND_LEFT)) {
fx248Subfx248(&entity->x, PLAYER_MOVE_SPEED_XY);
fx248Subfx248(&entity->y, PLAYER_MOVE_SPEED_XY);
entity->vx = -PLAYER_MOVE_SPEED_XY;
entity->vy = -PLAYER_MOVE_SPEED_XY;
if(entity->dir != ENTITY_DIR_NORTH && entity->dir != ENTITY_DIR_WEST) {
entity->dir = ENTITY_DIR_NORTH;
}
} else if(inputIsDown(INPUT_BIND_RIGHT)) {
fx248Addfx248(&entity->x, PLAYER_MOVE_SPEED_XY);
fx248Subfx248(&entity->y, PLAYER_MOVE_SPEED_XY);
entity->vx = PLAYER_MOVE_SPEED_XY;
entity->vy = -PLAYER_MOVE_SPEED_XY;
if(entity->dir != ENTITY_DIR_NORTH && entity->dir != ENTITY_DIR_EAST) {
entity->dir = ENTITY_DIR_NORTH;
}
} else {
fx248Subfx248(&entity->y, PLAYER_MOVE_SPEED);
entity->vy = -PLAYER_MOVE_SPEED;
entity->vx = 0;
entity->dir = ENTITY_DIR_NORTH;
}
} else if(inputIsDown(INPUT_BIND_DOWN)) {
if(inputIsDown(INPUT_BIND_LEFT)) {
fx248Subfx248(&entity->x, PLAYER_MOVE_SPEED_XY);
fx248Addfx248(&entity->y, PLAYER_MOVE_SPEED_XY);
entity->vx = -PLAYER_MOVE_SPEED_XY;
entity->vy = PLAYER_MOVE_SPEED_XY;
if(entity->dir != ENTITY_DIR_SOUTH && entity->dir != ENTITY_DIR_WEST) {
entity->dir = ENTITY_DIR_SOUTH;
}
} else if(inputIsDown(INPUT_BIND_RIGHT)) {
fx248Addfx248(&entity->x, PLAYER_MOVE_SPEED_XY);
fx248Addfx248(&entity->y, PLAYER_MOVE_SPEED_XY);
entity->vx = PLAYER_MOVE_SPEED_XY;
entity->vy = PLAYER_MOVE_SPEED_XY;
if(entity->dir != ENTITY_DIR_SOUTH && entity->dir != ENTITY_DIR_EAST) {
entity->dir = ENTITY_DIR_SOUTH;
}
} else {
fx248Addfx248(&entity->y, PLAYER_MOVE_SPEED);
entity->vy = PLAYER_MOVE_SPEED;
entity->vx = 0;
entity->dir = ENTITY_DIR_SOUTH;
}
} else if(inputIsDown(INPUT_BIND_LEFT)) {
fx248Subfx248(&entity->x, PLAYER_MOVE_SPEED);
entity->vx = -PLAYER_MOVE_SPEED;
entity->vy = 0;
entity->dir = ENTITY_DIR_WEST;
} else if(inputIsDown(INPUT_BIND_RIGHT)) {
fx248Addfx248(&entity->x, PLAYER_MOVE_SPEED);
entity->vx = PLAYER_MOVE_SPEED;
entity->vy = 0;
entity->dir = ENTITY_DIR_EAST;
} else {
entity->vx = 0;
entity->vy = 0;
}
}