Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[SFML]Snake - szybkie wciśnięcie klawiszy psuje ruch

Ostatnio zmodyfikowano 2015-07-17 13:31
Autor Wiadomość
bingo009
Temat założony przez niniejszego użytkownika
» 2015-07-17 13:31:27
Moja teoria chyba okazała się prawdziwa. Po zmianie kierunku dodałem instrukcję:
C/C++
sf::sleep( sf::seconds( 1.f / 3.f ) );

Dzięki temu bug został niemalże wyeliminowany. Tylko ten sposób chyba jest nieco krótkowzroczny. Może istnieje jakiś lepszy?

Edit: Dobra, przemyślałem sprawę i myślę, że nie ma sensu kombinować coś innego dla takiej "prostej" gry. Ten sposób jak najbardziej starcza. Ma on swoje wady, bo przy wolnym ruchu węża(wąż może się poruszać szybko i wolno) po ruchu widać lekkie przyspieszenie węża(gra nadgania czas), no i bug dalej występuje, ale trudniej go wywołać, to jednak przy szybkim ruchu węża nie udało mi się ponownie tego bugu wywołać. A gwałtowne manewry raczej bardziej są potrzebne w ruchu szybkim, tak więc myślę, że problem można uznać za rozwiązany. Dzięki za pomoc wszystkim.

Edit2: Otwieram temat na chwilę, bo mam o wiele lepsze rozwiązanie. Takie proste, że aż mi wstyd, że na nie nie wpadłem prędzej. Poprostu w klasie Game zrobiłem zmienną bool, która w konstruktorze ustawia się na true, po zmianie kierunku węża zmienia się na false(a warunek sprawdzający wciśnięcie klawiszy dodatkowo sprawdza, czy zmienna jest true) i zmienia się dopiero na true w pętli stałokrokowej, czyli dopiero po wykonaniu ruchu węża. To rozwiązało problem już ostatecznie i ostatnia błachostka niedająca mi spokojnie spać z tej gry została już ostatecznie rozwiązana. Zrobiłem ten dopisek, by zostawić to dla innych, którzy być może będą kiedyś mieli podobny problem. Tak więc temat znowu zamykam, dzięki za pomoc wszystkim.
P-134824
1 « 2 »
Poprzednia strona Strona 2 z 2