I'm trying to make a free roam camera in OpenGL. Currently the camera moves forward, backwards, left and right. My next aim is to allow it to move in the direction your looking at.
Heres my code so far:
float yawRad = Rotation -> y * (3.1415f/180);
float pitchRad = Rotation -> x * (3.1415f/180);
if(myInput.Keys[VK_W]) //Forward
{
curPos->x += sin(yawRad) * myInput.Sensitivity;
curPos->z -= cos(yawRad) * myInput.Sensitivity;
}
else if(myInput.Keys[VK_S]) //Backward
{
curPos->x -= sin(yawRad) * myInput.Sensitivity;
curPos->z += cos(yawRad) * myInput.Sensitivity;
}
if(myInput.Keys[VK_A]) //Left
{
curPos->x -= cos(yawRad) * myInput.Sensitivity;
curPos->z -= sin(yawRad) * myInput.Sensitivity;
}
else if(myInput.Keys[VK_D]) //Right
{
curPos->x += cos(yawRad) * myInput.Sensitivity;
curPos->z += sin(yawRad) * myInput.Sensitivity;
}
if(myInput.Keys[VK_E]) //Up
{
curPos->y += myInput.Sensitivity;
}
else if(myInput.Keys[VK_Q]) //Down
{
curPos->y -= myInput.Sensitivity;
}
myInput.Sensitivity is a float controlled by the mouse wheel, with values increasing/decreasing 0.0005.
Rotation is a vector class storing x,y,z values (float).
My question is, how can I modify my code to achieve free roam?