Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Oczekiwanie na przycisk prze określony czas, konsola C++

bamboous 02 Kwi 2014 13:52 1671 3
  • #1 02 Kwi 2014 13:52
    bamboous
    Poziom 6  

    Witam,
    podjąłem się ostatnio stworzenia Snake'a w konsoli C++. Jestem właśnie w momencie implementacji fukcji, która czekałaby na jeden z przycisków sterujących wężem, jednak gdy klawisz nie zostanie wciśnięty przez powiedzmy sekunde, funkcja zostałaby kończona i wąż poruszałby się samoczynnie. Pewnie w tym miejscu wszyscy doświadczeni programiści i forumowicze wytkną mi, że niepotrzebnie śmiecę forum kolejnymi tematami, bo takich przykładów i internecie jest mnóstwo, jednak pomimo 1,5h poszukiwań nie znalazłem tego, co mi jest potrzebne. Próbowałem zrealizować problem przez _kbhit(), jednak fukcja ta zwraca tylko 0 lub 1, a potrzebuję indeks wciśniętego klawisza.
    A oto kod na którym pracuję:

    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    Z góry dziękuję i proszę o wyrozumiałość.

    0 3
  • #3 03 Kwi 2014 18:49
    the_fifth_horseman
    Poziom 32  

    bamboous napisał:
    podjąłem się ostatnio stworzenia Snake'a w konsoli C++. Jestem właśnie w momencie implementacji fukcji, która czekałaby na jeden z przycisków sterujących wężem, jednak gdy klawisz nie zostanie wciśnięty przez powiedzmy sekunde, funkcja zostałaby kończona i wąż poruszałby się samoczynnie.
    Źle. Nie czekaj na wciśnięcie przycisku przez gracza. Wąż powinien poruszać się zmieniając pozycję co określoną liczbę "klatek" w ostatnio wciśniętym kierunku (jak dostosować prędkość gry, wymyśl sam). Kropka. Gracz tylko zmienia kierunek ruchu.
    Cytat:
    Próbowałem zrealizować problem przez _kbhit(), jednak fukcja ta zwraca tylko 0 lub 1, a potrzebuję indeks wciśniętego klawisza.
    Pętlę gry wykonujesz dopóki gracz nie wciśnie przycisku - to sprawdzasz kbhit(), i dopiero jeżeli jest wciśnięty klawisz to sprawdzasz jego wartość wykorzystujac getch(). Inaczej gra czekałaby w miejscu na wciśnięcie klawisza.

    0
  • #4 04 Kwi 2014 14:07
    bamboous
    Poziom 6  

    Wielkie dzięki, mam to co chciałem ;)

    0
  Szukaj w 5mln produktów