Odpowiedz na aktualne pytanie (czy pętla gry musi znajdować się w osobnym wątku):
Ludzie często zalecają używanie osobnego wątku, ponieważ nie chcą, aby intensywne przetwarzanie zakłócało interaktywność interfejsu użytkownika. Tylko ty możesz stwierdzić, czy twoja gra wymaga osobnego wątku . To zależy całkowicie od silnika i frameworka, czy główna pętla gry w twoim obecnym projekcie może zakłócać czas reakcji interfejsu użytkownika. Myślałem, że ogólnie zakładasz, że tak nie będzie (w małych projektach), chyba że masz powód, by myśleć inaczej.
Innym powodem, dla którego kod należy przechowywać w osobnych wątkach, jest utrzymanie jego modułowości i prostoty. Wymieszanie dwóch niepowiązanych fragmentów kodu może często powodować, że kod stanie się mniej czytelny i łatwiejszy do utrzymania na dłuższą metę.
Czy pętla gry musi działać w osobnym wątku? Możliwie. Jeśli występuje problem z czasem odpowiedzi lub kodem i potrzebujesz wielu elementów interfejsu użytkownika, aby odpowiedzieć niezależnie od intensywnego przetwarzania, lub po prostu chcesz podzielić kod na określone zadania, które występują jednocześnie ze względów projektowych, idź z nim. Jest to jednak uważane za zaawansowaną praktykę programowania.
Prostym, ale może nie doskonałym przykładem do zilustrowania jest gra dla dwóch graczy. Możesz uruchomić dwie instancje klasy, która obsługuje dane wejściowe użytkownika i konwertuje na zmiany stanu w instancji postaci gracza.
Niektóre frameworki zachęcają / wymagają użycia systemu opartego na zdarzeniach / przerwaniach, tak jak robi to ActionScript3.0. W takim przypadku kod pętli zwykle przechodzi do OnEnterFrame
zdarzenia lub czegoś podobnego, co występuje 20–60 lub 120 razy na sekundę.
Odpowiedz na oryginalne pytanie (czy potrzebuję głównej pętli):
Wszystko sprowadza się do licznika programu . Jeśli tworzysz grę, która będzie działać dłużej niż z góry określony czas i nie będzie generować kodu w miarę upływu czasu, będziesz musiał uprzejmie poprosić komputer użytkownika o powtórzenie instrukcji, które już przetworzył i co może się zmienić w tymczasem jest stan (wartości przechowywane w obiektach i globach gry).
Ponieważ wiesz, że będziesz musiał powtórzyć instrukcje, istnieje kilka sposobów wykonania tego zadania i ciągłego przetwarzania tych samych instrukcji. Wszystkie te metody obejmują przeniesienie licznika programu z powrotem do aktualnie odpowiedniej instrukcji. Najczęstsze instrukcje przepływu sterowania, które powodują powtarzanie kodu, nazywane są pętlami, innym jest goto
instrukcja, która jest rzadko używana w nowoczesnym kodzie i ma podobny efekt w tym przypadku (całkowicie nieistotny dla Ciebie).
Aby odpowiedzieć na poprzednie pytanie, potrzebujesz pętli? Tak