поэтому у меня есть функция, которая обрабатывает нажатия клавиш в игре, над которой я работаю в OpenGL. Но дело в том, что хотя я сделал два квадрата, и они оба двигаются, когда нажата правильная клавиша, только один квадрат перемещается. Есть ли способ, которым я могу заставить два квадрата двигаться. Это функция glutKeyboardFunc, которую я импонировал:Есть ли способ переместить два квадрата в OpenGL одновременно?
void handleKeypress(unsigned char key, int x, int y)
{
if (key == 'w')
{
for (int i = 0; i < 12; i++)
{
if (i == 1 || i == 7 || i == 10 || i == 4)
{
square[i] = square[i] + 0.1;
}
}
}
if (key == 'd')
{
for (int i = 0; i < 12; i++)
{
if (i == 0 || i % 3 == 0)
{
square[i] = square[i] + 0.1;
}
}
}
if (key == 's')
{
for (int i = 0; i < 12; i++)
{
if (i == 1 || i == 7 || i == 10 || i == 4)
{
square[i] = square[i] - 0.1;
}
}
}
if (key == 'a')
{
for (int i = 0; i < 12; i++)
{
if (i == 0 || i % 3 == 0)
{
square[i] = square[i] - 0.1;
}
}
}
glutPostRedisplay();
}
Если вам нужен еще один код, просто спросите.
Каковы значения параметров glutTimerFunc? – Himadri
'glutTimerFunc()' принимает время в ms для вызова функции, а третье значение передается в функцию. В этом случае OP передает 0,001 мс в функцию ... что не имеет смысла. Кроме того, этот проект имеет потенциал для создания проблем гоночных условий. –
У меня был glutTimerfunc() только потому, что у меня были проблемы с плавными переходами (квадрат вскочил), который не работал в любом случае ... поэтому я вытащу glutTimerFunc() в своем новом коде. – 2010-05-10 22:42:59