#include "playerCamera.h" #include "game.h" void initPlayerCamera(Camera3D * camera) { *camera = (Camera3D){ .fovy = 90.0, .projection = CAMERA_PERSPECTIVE }; } void updatePlayerCamera(Camera3D * camera, Game * game) { Entity * player = &game->world.entities[0]; camera->target = player->position; Matrix m = QuaternionToMatrix(QuaternionInvert(player->rotation)); Vector3 pos = (Vector3){0.0, CAMERA_DIS/2, -CAMERA_DIS}; camera->position = (Vector3){ m.m0 * pos.x + m.m1 * pos.y + m.m2 * pos.z, m.m4 * pos.x + m.m5 * pos.y + m.m6 * pos.z, m.m8 * pos.x + m.m9 * pos.y + m.m10 * pos.z }; camera->position = Vector3Add(camera->position, player->position); camera->up = (Vector3){ m.m1 + m.m2, m.m5 + m.m6, m.m9 + m.m10 }; }