Ĺadny brzuch
Mam taki problem że chciałem użyć SDL'a do obsługi klawiatury i wrzuciłem taki kod do pętli przetwarzającej komunikaty systemu:
while (!exit) { if(PeekMessage(&msg, g_hwnd, NULL, NULL, PM_REMOVE)) { if (msg.message == WM_QUIT) { exit = TRUE; } else { TranslateMessage(&msg); DispatchMessage(&msg); } } SDL_WaitEvent (zdarzenie); keystate = SDL_GetKeyState(NULL); if ( keystate[SDLK_RETURN]==1 ) { glBegin(GL_TRIANGLES); glColor3f(0.0f,0.0f,1.0f); glVertex3f(0.5 , 0.0 ,-5.0 ); glVertex3f(0.0 , 0.5 ,-5.0 ); glVertex3f( -0.5 , 0.0 ,-5.0 ); glEnd(); } INPUTSYS(); RENDER(); SwapBuffers(g_hdc); } KillWindow(); return msg.wParam; }
no i pies jest pogrzebany w tym że nic się nie dziej kiedy ten ENTER wciskam pomóżcie ludzie bo ja już nie wiem.
...
no to usunąłem to sdl_waitevent() chociaż wcale nie zatrzymuje działania programu i dalej to samo jest wogóle nie reaguje na wciskanie klawisza. poprostu cały czas wartość w tablicy jest zero.
Użytkownik kondi edytował ten post 31 maj 2006, 22:47
Wyświetlaj w pętli całą tablicę klawiszy to dowiesz się, czy błąd tkwi w poleceniu:
keystate = SDL_GetKeyState(NULL);
czy w sprawdzeniu wartości.
Chyba nie ma w ogóle kodu klawisza 0, więc może:
if ( keystate[SDLK_RETURN-1]==1 )
Jak się mylę to możecie ochrzanić :D
nie bardzo kumam o co ci chodzi. keystate to tablica która przechowuje stany poszczególnych klawiszy 1 to wciśnięty 0 to puszczony, a SDLK_RETURN to indeks klawisza "enter"
Wyświetlaj w pętli całą tablicę klawiszy to dowiesz się, czy błąd tkwi w poleceniu:
keystate = SDL_GetKeyState(NULL);
czy w sprawdzeniu wartości.
Chyba nie ma w ogóle kodu klawisza 0, więc może:
if ( keystate[SDLK_RETURN-1]==1 )
Jak się mylę to możecie ochrzanić :D
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
while (!exit) { if(PeekMessage(&msg, g_hwnd, NULL, NULL, PM_REMOVE)) { if (msg.message == WM_QUIT) { exit = TRUE; } else { TranslateMessage(&msg); DispatchMessage(&msg); } } SDL_WaitEvent (zdarzenie); keystate = SDL_GetKeyState(NULL); if ( keystate[SDLK_RETURN]==1 ) { glBegin(GL_TRIANGLES); glColor3f(0.0f,0.0f,1.0f); glVertex3f(0.5 , 0.0 ,-5.0 ); glVertex3f(0.0 , 0.5 ,-5.0 ); glVertex3f( -0.5 , 0.0 ,-5.0 ); glEnd(); } INPUTSYS(); RENDER(); SwapBuffers(g_hdc); } KillWindow(); return msg.wParam; }
no i pies jest pogrzebany w tym że nic się nie dziej kiedy ten ENTER wciskam pomóżcie ludzie bo ja już nie wiem.
...

no to usunąłem to sdl_waitevent() chociaż wcale nie zatrzymuje działania programu i dalej to samo jest wogóle nie reaguje na wciskanie klawisza. poprostu cały czas wartość w tablicy jest zero.
Użytkownik kondi edytował ten post 31 maj 2006, 22:47
Wyświetlaj w pętli całą tablicę klawiszy to dowiesz się, czy błąd tkwi w poleceniu:
keystate = SDL_GetKeyState(NULL);
czy w sprawdzeniu wartości.
Chyba nie ma w ogóle kodu klawisza 0, więc może:
if ( keystate[SDLK_RETURN-1]==1 )
Jak się mylę to możecie ochrzanić :D
nie bardzo kumam o co ci chodzi. keystate to tablica która przechowuje stany poszczególnych klawiszy 1 to wciśnięty 0 to puszczony, a SDLK_RETURN to indeks klawisza "enter"
Wyświetlaj w pętli całą tablicę klawiszy to dowiesz się, czy błąd tkwi w poleceniu:
keystate = SDL_GetKeyState(NULL);
czy w sprawdzeniu wartości.
Chyba nie ma w ogóle kodu klawisza 0, więc może:
if ( keystate[SDLK_RETURN-1]==1 )
Jak się mylę to możecie ochrzanić :D
