【发布时间】:2013-02-19 03:39:43
【问题描述】:
我正在尝试使用 opengl 在 C++ 中创建一个简单的乒乓球游戏。我在屏幕上显示了边框,桨,球,它们都在移动,太棒了!问题是,即使以一个像素的速度,球也会以闪电般的速度移动。
我在一个名为 init 的回调函数中更新它的位置,然后我将它传递给 glutIdleFunc,如下所示:glutIdleFunc(idle);
idle函数如下:
void idle(){
ball.moveLeft();
glutPostRedisplay();
}
基本上我只是让它向左移动一个像素,但是,我猜空闲被调用了很多,所以它移动得很快。如何解决此错误?
如果您需要更多信息,请询问!
【问题讨论】:
-
时间在任何模拟中都是一个非常重要的方面。考虑两帧之间经过的时间。
-
我不熟悉
glut,但一个叫做IdleFunc的东西似乎不适合给我提供图形更新! -
使用
glutTimerFunc。 GLUT 计时器只触发一次,所以不要忘记在回调中再次设置它。