我有一个加载对象文件的 OpenGL 项目,加载对象后,我希望能够用键盘顺利移动它,所以我编写了这段代码来完成这项工作:
while (remains) {
if (x_remains) {
refPosition[0] += speed.x;
if (refPosition[0] > nextPos[0]) {
x_remains = false;
}
}
if (y_remains) {
refPosition[1] += speed.y;
if (refPosition[1] > nextPos[1]) {
y_remains = false;
}
}
if (z_remains) {
refPosition[2] += speed.z;
if (refPosition[2] >= nextPos[2]) {
z_remains = false;
}
}
remains = x_remains || y_remains || z_remains;
glutPostRedisplay();
}
如您所见,我想在 while 中重新显示场景,但是当执行此操作时, glutpostredisplay() 只需设置一个标志,并且在主循环的下一次迭代中重新绘制场景。我的问题是如何在 while 的下一个循环之前和函数返回之前重绘场景