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

Wykonywanie kilku rzeczy na raz

Object Storage Arubacloud
0 głosów
849 wizyt
pytanie zadane 5 listopada 2015 w C i C++ przez C☺ndzi Stary wyjadacz (12,100 p.)
Jak to jest zrobione? Na przykład ruch kilkunastu npc-ów w grze? Albo odgrywanie 2 różnych animacji w tym samym momencie? Poprostu wykonywanie 2 rzeczy na raz.

4 odpowiedzi

+1 głos
odpowiedź 5 listopada 2015 przez furas Maniak (53,800 p.)
wybrane 5 listopada 2015 przez C☺ndzi
 
Najlepsza
Często robi się pętlę, która chodzi w nieskończoność (zwykle mówi się o niej "main loop" / "mainloop") i w tej pętli wykonuje się kolejno takie rzeczy jak
- sprawdzanie klawiatury i myszki (i zmienianie pozycji gracza ale bez rysowania na ekranie)
- przeliczanie pozycji (i klatek animaci) innych postaci (bez rysowania na ekranie)
- sprawdzanie kolizji wszystkich elementów
- czyszczenie ekrany i narysowanie wszystkich elementów
- wywołanie funkcji, która zapewnia, że pętla będzie wykonywana nie częściej niż np. 30 razy na sekundę (co daje narysowanie 30 ramek na sekundę - Frames Pers Second - FPS).
0 głosów
odpowiedź 5 listopada 2015 przez Rogargol Pasjonat (16,600 p.)
Pierwsza rzecza ktora sie nasuwa to obsluga wątków. Chociaz kiedys bylo to realizowane za pomoca przeplatania krotszych instrukcji w czasie, co owocowalo pozornym realizowaniem wielu operacji w tym samym czasie. Mowiac szczerze aktualnie tworzac proste programy, raczej uzywam timerow wbudowanych w klasy co w zupelnosci mi wystarcza, natomiast oczywiscie mozna posluzyc sie tez watkami.
0 głosów
odpowiedź 5 listopada 2015 przez Damian11131 Stary wyjadacz (13,490 p.)
Tak naprawdę to komputer nie wykonuje 2 rzeczy jednocześnie tylko bardzo szybko "przeskakuje" pomiędzy nimi, a my mamy wrażenie, że komputer wykonuje kilka rzeczy jednocześnie. Jeśli się mylę to proszę mnie poprawić.
komentarz 5 listopada 2015 przez furas Maniak (53,800 p.)
Wielowątkowość (watki) to rzeczywiście takie szybkie przełączanie między wykonywanymi procesami. W grach (ale też w GUI) często jednak stosuje się pętlę która wykonuje kolejno rózne zadania tak aby wyglądało jakby robiło wiele rzeczy naraz. Ale w takim przypadku wstawienie gdzieś dłuższego sleep() od razu pokazuje, że cały program przestaje reagować bo nie może przejść do pobierania danych z klawiatury i myszy.

Jeśli więc jakiś element wymaga nieprzerwanego wykonywania to należy wspomóc sie wątkami.
0 głosów
odpowiedź 5 listopada 2015 przez notabigthreat Mądrala (7,060 p.)
Nie potrzeba faktycznie wykonywać czynności jednocześnie. Wystarczy, by robić to przed kolejną klatką gry.

Klatka początkowa: gracz 1 na pozycji (2,3), gracz 2 na pozycji (4,3)
Przesuwamy gracza 1 do (3,3).
Przesuwamy gracza 2 do (4,2).
Rysujemy kolejną klatkę.

Zauważ, że w powyższym przykładzie nie ma klatki, gdzie tylko jeden z graczy się przemieścił.

Podobne pytania

0 głosów
1 odpowiedź 300 wizyt
pytanie zadane 21 kwietnia 2022 w C# przez Idezam Początkujący (410 p.)
0 głosów
1 odpowiedź 160 wizyt
pytanie zadane 19 stycznia 2016 w PHP przez majfirst Obywatel (1,200 p.)
0 głosów
1 odpowiedź 89 wizyt
pytanie zadane 16 maja 2020 w C i C++ przez wall7489 Obywatel (1,250 p.)

92,555 zapytań

141,402 odpowiedzi

319,540 komentarzy

61,938 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!

...