#include #include #include "player.h" void move_player(Player *player, GLFWwindow* window) { if (glfwGetKey(window, GLFW_KEY_W) == GLFW_PRESS) { player->pos_x += player->dir_x * player->move_speed; player->pos_y += player->dir_y * player->move_speed; } if (glfwGetKey(window, GLFW_KEY_S) == GLFW_PRESS) { player->pos_x -= player->dir_x * player->move_speed; player->pos_y -= player->dir_y * player->move_speed; } if (glfwGetKey(window, GLFW_KEY_A) == GLFW_PRESS) { // this changes where we're casting our rays double old_dir_x = player->dir_x; player->dir_x = player->dir_x * cos(-player->rot_speed) - player->dir_y * sin(-player->rot_speed); player->dir_y = old_dir_x * sin(-player->rot_speed) + player->dir_y * cos(-player->rot_speed); // this updates perspective double old_plane_x = player->plane_x; player->plane_x = player->plane_x * cos(-player->rot_speed) - player->plane_y * sin(-player->rot_speed); player->plane_y = old_plane_x * sin(-player->rot_speed) + player->plane_y * cos(-player->rot_speed); } if (glfwGetKey(window, GLFW_KEY_D) == GLFW_PRESS) { double old_dir_x = player->dir_x; player->dir_x = player->dir_x * cos(player->rot_speed) - player->dir_y * sin(player->rot_speed); player->dir_y = old_dir_x * sin(player->rot_speed) + player->dir_y * cos(player->rot_speed); double old_plane_x = player->plane_x; player->plane_x = player->plane_x * cos(player->rot_speed) - player->plane_y * sin(player->rot_speed); player->plane_y = old_plane_x * sin(player->rot_speed) + player->plane_y * cos(player->rot_speed); } }