【发布时间】:2011-05-29 23:26:09
【问题描述】:
我是第一次使用opengl进行赛车,我面临的第一个问题是如何让相机以恒定距离跟随汽车..这是键盘功能的代码。V是速度车。
void OnSpecial(int key, int x, int y)
{
float step = 5;
switch(key) {
case GLUT_KEY_LEFTa:
carAngle = step;
V.z = carAngle ;
camera.Strafe(-step/2);
break;
case GLUT_KEY_RIGHT:
carAngle = -step;
V.z = carAngle ;
camera.Strafe(step/2);
break;
case GLUT_KEY_UP:
V.x += (-step);
camera.Walk(step/2);
break;
case GLUT_KEY_DOWN:
if(V.x<0)
{
V.x += step;
camera.Walk(-step/2);
}
break;
}
}
【问题讨论】:
-
您能否提供更多细节:汽车位置是如何定义的,您想要什么样的摄像头行为?通常,您需要获取汽车的位置以及可能“看”的方向,然后从中计算相机位置。
-
渲染代码更有助于提供有意义的答案。另外,你能描述一下目前正在发生的事情吗?汽车加速时摄像头是否固定?还是你还没走到那一步?
-
我的代码由显示函数组成,其中包含转换函数、更新函数和绘制 m2d 汽车和轨道的渲染场景函数。我在渲染之前和之前使用了代码,但它也不起作用。 ...关于汽车位置,我有一个向量,我可以在其中更改 onSpecialkey 函数。使用我的代码汽车加速,所以起初汽车比相机慢,然后相机变慢,汽车消失。我需要摄像头与汽车保持恒定距离。有什么建议吗?