【发布时间】:2011-07-30 03:15:56
【问题描述】:
我正在使用 glut 库在 OpenGL 上进行编程,但在使用键盘控制对象的位置时遇到了问题。
我有以下 glutKeyboardFunc 的回调函数
void handleKeypress (unsigned char key, int x, int y)
{
switch (key)
{
case 27:
exit (0); break;
case 'w':
position_y += 0.2f; break;
case 's':
position_y -= 0.2f; break;
case 'a':
position_x -= 0.2f; break;
case 'd':
position_x += 0.2f; break;
case 'q':
depth += 0.2f; break;
case 'e':
depth -= 0.2f; break;
case 'z':
angle += 0.2f; break;
case 'c':
angle -= 0.2f; break;
}
}`
不过,我知道这还不够。如果我想让更改发生,我必须添加 glutPostRedisplay() - 但是在哪里?我必须把它放在上述代码中的每个“中断”之前吗?我试图将它添加到 glutTimerFunc 回调和 glutIdleFunc 回调中,但对象在击键后继续移动。
【问题讨论】: