我试图做一个自由漫游相机在OpenGL。 目前摄像头前进,后退,左,右。 我的下一个目标是允许它在你看的方向移动。
继承人我到目前为止的代码:
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
是通过鼠标滚轮控制的浮子,其值增加/减少0.0005。
Rotation
是矢量类存储的x,y,z值(浮点)。
我的问题是,如何才能修改我的代码,实现自由漫游?