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?