更新屏幕以渲染摄影机位置 我已经把C++源从使用GLUT转换成使用SDL/OpenGL,问题是,我已经从GLUT改变了:相机的位置没有被更新,所以不是使用键盘移动,屏幕只是坐在那里呈现它需要和不更新的东西。
键盘笔划正在工作,因为我已经设置好了,所以当按下ESC键时,它会退出,这很好 这是我的显示函数,每次循环和按键时都会调用该函数(wasd): 接下来是Camera.Render() 现在,按下一个键后会发生什么情况(该键将使相机向前移动): 最后是CCamera().MoveForward()函数:更新屏幕以渲染摄影机位置 我已经把C++源从使用GLUT转换成使用SDL/OpenGL,问题是,我已经从GLUT改变了:相机的位置没有被更新,所以不是使用键盘移动,屏幕只是坐在那里呈现它需要和不更新的东西。,c++,opengl,sdl,C++,Opengl,Sdl,键盘笔划正在工作,因为我已经设置好了,所以当按下ESC键时,它会退出,这很好 这是我的显示函数,每次循环和按键时都会调用该函数(wasd): 接下来是Camera.Render() 现在,按下一个键后会发生什么情况(该键将使相机向前移动): 最后是CCamera().MoveForward()函数: MoveForward(GLfloat Distance){ Position = Position + (ViewDir*-Distance); } 我一辈子都搞不懂为什么按键一按下就不
MoveForward(GLfloat Distance){
Position = Position + (ViewDir*-Distance);
}
我一辈子都搞不懂为什么按键一按下就不能更新位置。
任何帮助都将不胜感激!谢谢。CCamera()
只是创建了一个临时摄像头。(然后你移动它。)然后临时的就消失了
也许你是想修改
相机
?你我的朋友是大师!难怪你叫格曼。谢谢。我的问题现在看起来很傻。@Elgoog:没关系,每个人都至少问一次。
SF3dVector ViewPoint = Position+ViewDir;
gluLookAt(Position.x,Position.y,Position.z,ViewPoint.x,ViewPoint.y,ViewPoint.z,UpVector.x,UpVector.y,UpVector.z);
case SDLK_w:
CCamera().MoveForward( -0.1 ) ;
Display();
break;
MoveForward(GLfloat Distance){
Position = Position + (ViewDir*-Distance);
}