Liczba postów: 2,411
Liczba wątków: 14
Dołączył: 10-08-2009
Reputacja:
132
Mi się zawsze wydawało, że gry w JS działają na bardzo starej podstawowej zasadzie gier, czyli głównej pętli. Szło to mniej więcej tak:
Jest sobie pętla, która wykonuje zadania:
1) policz sobie coś tam
2) sprawdź co nacisnął gracz
3) przesuń gracza, potworki itp w zależności od pkt 1,2
4) narysuj klatkę
5) wróć do 1 pkt
czyli masz różne metody np sprawdzenia klawiszy, poruszenia potworków, narysowania klatki gry. I to wszystko robisz w głównej POJEDYNCZEJ pętli (u ciebie setTimeout). Oczywiście to jest taka podstawa, bo w js później korzysta się z różnych technik typu "rysuję kawałek klatki a nie całą" itp. Ty zrobiłeś naście settimeoutów które nie wiadomo kiedy są odpalane itp. Zrob sobie jedną metodę która odpali metody sprawdzania, przesowania, rysowania itp, a nastepnie wykona jedno settimeout na siebie sama. Ah i jeszcze jedno. Zamiast setTimeout zainteresuj się requestAnimationFrame
Tak szczerze to ja bym pewnie skorzystał z jakiegoś gotowego silnika typu Stencil czy podobne (swego czasu baaaardzo pięknie mi się robiło w GameMakerze).