Napisałem program ze spadającymi elementami, można nimi obracać. niestety element zamiast obrócić się raz, kręci się w kółko. ktoś ma pomysł co zrobić żeby element obrócił się tylko raz po naciśnięciu?
Kawałki kodu:
...
glTranslatef(0.0f, 2.0f - obecnaWysokoscKlocka, -0.0f);
glRotatef(katKlocka, 0.0f, 0.0f, 1.0f);
if (obrotZgodny == true)
{
katKlocka = katKlocka + 90;
obrotZgodny = false;
}
if (obrotPrzeciwny == true)
{
katKlocka = katKlocka - 90;
obrotPrzeciwny = false;
}
...
LRESULT CALLBACK WndProc(HWND hWnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam)
{
switch (uMsg)
{
case WM_ACTIVATE:
{
if (!HIWORD(wParam))
{
active = TRUE;
}
else
{
active = FALSE;
}
return 0;
}
case WM_SYSCOMMAND:
{
switch (wParam)
{
case SC_SCREENSAVE:
case SC_MONITORPOWER:
return 0;
}
break;
}
case WM_CLOSE:
{
PostQuitMessage(0);
return 0;
}
case WM_KEYDOWN:
{
keys[wParam] = TRUE;
return 0;
}
case WM_KEYUP:
{
keys[wParam] = FALSE;
return 0;
}
case WM_SIZE:
{
ReSizeGLScene(LOWORD(lParam), HIWORD(lParam));
return 0;
}
}
return DefWindowProc(hWnd, uMsg, wParam, lParam);
}
if (keys[VK_UP])
{
obecnaWysokoscKlocka = obecnaWysokoscKlocka - 0.03f;
}
if (keys[VK_DOWN])
{
obecnaWysokoscKlocka = obecnaWysokoscKlocka + 0.3f;
}
if (keys[VK_LEFT])
{
obrotZgodny = true;
}
if (keys[VK_RIGHT])
{
obrotPrzeciwny = true;
}