Я программирую на 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, но объекты продолжают двигаться после нажатия клавиши.