// @ts-ignore import mat4 from 'gl-mat4'; /** * Updates the camera position depending on keyboard input * @param {any} context the program context */ export function updateCamera(context: any) { const xMat = mat4.create(); mat4.rotateY(xMat, xMat, context.params.camRot.y); mat4.rotateX(xMat, xMat, context.params.camRot.x); const zMat = mat4.create(); mat4.rotateY(zMat, zMat, context.params.camRot.y); mat4.rotateX(zMat, zMat, context.params.camRot.x); if (context.params.keyboard.a) { context.params.camPos.x += xMat[0]; context.params.camPos.y += xMat[4]; context.params.camPos.z += xMat[8]; } if (context.params.keyboard.d) { context.params.camPos.x -= xMat[0]; context.params.camPos.y -= xMat[4]; context.params.camPos.z -= xMat[8]; } if (context.params.keyboard.space) { context.params.camPos.y -= 1; } if (context.params.keyboard.control) { context.params.camPos.y += 1; } if (context.params.keyboard.w) { context.params.camPos.x += zMat[2]; context.params.camPos.y += zMat[6]; context.params.camPos.z += zMat[10]; } if (context.params.keyboard.s) { context.params.camPos.x -= zMat[2]; context.params.camPos.y -= zMat[6]; context.params.camPos.z -= zMat[10]; } }