我在屏幕上画了一个球体。当我按下按钮时,我希望球体缓慢向右移动。我正在努力做到这一点
for (int i = 0;i<10;i++)
{
sphere.moveToRight(0.1);
glutPostRedisplay();
sleep(1000);
}
但是它没有动画,而是等待几秒钟,然后在最终位置绘制球体。我认为是因为睡眠停止了glutPostRediplay()。关于如何完成此基本动画的任何想法?
最佳答案
您使用的glutPostRedisplay
错误。
检出:http://www.opengl.org/resources/libraries/glut/spec3/node20.html
glutPostRedisplay
将当前窗口的法线标记为需要
重新显示。 glutPostWindowRedisplay
使用指定的窗口
由于需要重新显示。在任一调用之后,下一次迭代
通过glutMainLoop
,将调用窗口的显示回调
重新显示窗口的法线平面。多次致电
glutPostRedisplay
在下一个显示回调机会之前
仅生成一个重新显示回调。 glutPostRedisplay
可能是
在窗口的显示或覆盖显示回调中调用
重新标记该窗口以重新显示。
这意味着10秒钟后,您的图片将刷新一次。