• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Gra w konsoli. Wielowątkowość albo coś .

Object Storage Arubacloud
0 głosów
734 wizyt
pytanie zadane 2 stycznia 2016 w C i C++ przez PietaS Bywalec (2,570 p.)
Wpadłem na pomysł aby zrobię grę w konsoli. Gra nazywa się ASCII Protector. W założeniu ma być grą podobną do Space invaders. Gracz ma poruszać statkiem /* na przykład " /!\ "*/ Statek będzie wybierany w oddzielnej zakładce. Wybór zostanie zapisany w pliku cfg.txt. Wszystki zrealizowane obiektowo z polimorfią etc. W pewnym momencie poiawił się jednak problem jak sprawić aby "tło" Poruszało się niezależnie od gracza i tu dowiedziałem się o wielu wątkach, ale nie wiem jak zsynchronizować oba wątki. (tło porusza się nawet jak gracz się nie porusza. Poruszanie się gracza jest za pomocą getch() i switch)?

2 odpowiedzi

0 głosów
odpowiedź 2 stycznia 2016 przez Qhoros Mądrala (7,110 p.)
edycja 2 stycznia 2016 przez Qhoros
Każdy wątek żyje swoim życiem do momentu wykonania zadania (ewentualnie błędu). Na koniec zwraca kod powrotu do wątku macierzystego. Tak na szybko (nie jestem pewien czy będzie działać) myślę, że mógłbyś wątek potomny (po wykonaniu zadania, tj. puszczenia klawisza) usypiać (potrzebna jest ci wiedza z sygnałów) i zaprogramować to tak, by w momencie wciskania klawiszy sterowania wątek potomny zaczął kontynuować pracę. Poczytaj o SIGSTOP I SIGCONT Edit: Dla jasności wątek główny to gra, potomny to tło.
0 głosów
odpowiedź 2 stycznia 2016 przez Patrycjerz Mędrzec (192,320 p.)

Takie implementacje nie tworzy się za pomocą kolejnego wątku, gdyż to marnotrawstwo zasobów. Lepiej, abyś oparł swoją grę na tzw. pętli gry i nie używał gołej funkcji getch, co najwyżej z dodatkiem funkcji kbhit (conio.h), albo w ogóle znalazłbyś sobie jakąś bibliotekę oferującą zaawansowaną obsługę zdarzeń.

Przykład z kbhit:

if(kbhit())
{
	// Użycie funkcji getch...
}

 

Podobne pytania

0 głosów
1 odpowiedź 186 wizyt
pytanie zadane 24 stycznia 2018 w C i C++ przez Dziobi Początkujący (490 p.)
+3 głosów
2 odpowiedzi 1,426 wizyt
pytanie zadane 10 lutego 2018 w Nasze projekty przez shy_fox Gaduła (4,320 p.)
+1 głos
6 odpowiedzi 2,260 wizyt
pytanie zadane 19 marca 2016 w Nasze projekty przez TheFeniks Gaduła (4,690 p.)

92,577 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...