[SDL]Powtarzanie klawiszy podczas poruszania sie postaci
Ostatnio zmodyfikowano 2011-01-26 20:32
ThudPoland |
» 2011-01-25 22:13:44 Problem został rozwiązany. Przynajmniej mi się tak wydaje i kolegowi Savail także.
Jeżeli nie zapomnę jutro pokażę rozwiązanie. |
|
ThudPoland |
» 2011-01-26 20:32:19 Jak też powiedziałem tak też zrobię. Cały problem opierał się na tym, żeby napisać specjalny licznik który po odpowiednim czasie (chyba że przycisk "sterujący" jest nadal wciśnięty). Działanie licznika: jeżeli(odpowiedni_klawisz==wciśnięto i licznik==0) to licznik=1; jeżeli zaś(odpowiedni_klawisz==uwolniono i licznik==1 i delta_czasu==odpowiednia) to licznik=2; jeżeli zaś(odpowiedni_klawisz==wciśnięto i licznik==2 i kolejna_delta_czasu==odpowiednia) to włącz_bieganie i licznik=3; dopoki(odpowiedni_klawisz==przytrzymano i licznik==2) to biegaj_dalej; w przeciwnym wypadku wyzeruj licznik; Taka była idea. Chodź gdyby całość przełożyć na C++ to kod nie byłby taki sam. W kodzie kolegi cały problem polegał na tym, że używał tablicy Uint8 do przechowywania stanów klawiszy. Ten problem udało mi się rozwiązać dzięki kilku podobnym instrukcjom wklepanym w odpowiednie warunki. Tutaj macie przykładowe użycie tychże instrukcji: if( Event.key.type == SDL_KEYDOWN ) DoSomething(); else if( Event.key.type == SDL_KEYUP ) DoSomethingElse();
if( Event.key.state == SDL_PRESSED ) DoSomething(); else if( Event.key.state == SDL_RELEASED ) DoSomethingElse(); Po szczegółowe informacje zapraszam do dokumentacji: http://sdl.beuc.net/sdl.wiki/SDL_KeyboardEvent |
|
1 2 « 3 » |