Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów
[js] [jquery] Mapa 2D. Stały ruch bohatera - Wersja do druku

+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: xHTML, CSS, JavaScript (https://www.webmastertalk.pl/forum-xhtml-css-javascript)
+--- Wątek: [js] [jquery] Mapa 2D. Stały ruch bohatera (/thread-js-jquery-mapa-2d-staly-ruch-bohatera)



[js] [jquery] Mapa 2D. Stały ruch bohatera - Puf - 06-05-2013




RE: [js] [jquery] Mapa 2D. Stały ruch bohatera - Kartofelek - 06-05-2013

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).