Canvas - pętla gry z książki HTML5 Canvas Receptury opinie |
Canvas - pętla gry z książki HTML5 Canvas Receptury opinie |
11.09.2017, 23:04:06
Post
#1
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 1 Dołączył: 1.06.2016 Ostrzeżenie: (0%) |
Witam,
chciałbym zasięgnąć opinii na temat skryptu tworzącego pętle gry, czy jest on dobrze napisany, czy nie jest przestarzały i czy warto go używać . Skrypt dynamicznie określa ilość fps'ów przeglądarki i zastanawiam się czy korzystać z tego skryptu czy lepiej napisać własny w którym będzie określona stała liczba fps'ów np 30. CODE
|
|
|
13.09.2017, 09:43:06
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 268 Pomógł: 254 Dołączył: 11.06.2009 Skąd: Świętochłowice Ostrzeżenie: (0%) |
Nie jest przestarzały i używa najlepszej z możliwych technik do przerysowywania canvas: requestAnimationFrame. Fakt, że metoda ta nie wywołuje się co sztywny interwał, jest optymalizacją (przeglądarka sama ustala, kiedy może sobie pozwolić na animację), stąd należy za każdym razem ustalić, ile ramek przeleciało i w jaki sposób przerysować płótno.
-------------------- ★Mój blog || Okiem krytyka★
|
|
|
13.09.2017, 13:04:25
Post
#3
|
|
Grupa: Zarejestrowani Postów: 239 Pomógł: 32 Dołączył: 10.03.2004 Ostrzeżenie: (10%) |
Nie jest przestarzały i używa najlepszej z możliwych technik do przerysowywania canvas: requestAnimationFrame. Fakt, że metoda ta nie wywołuje się co sztywny interwał, jest optymalizacją (przeglądarka sama ustala, kiedy może sobie pozwolić na animację), stąd należy za każdym razem ustalić, ile ramek przeleciało i w jaki sposób przerysować płótno. To znaczy, że mogą następować spadki klatek? kiedyś bawiłem się tym i miałem spadki klatek co powodowało "przyspieszanie" zwalnianie gry. To normalne zachowanie? |
|
|
13.09.2017, 15:49:14
Post
#4
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 1 Dołączył: 1.06.2016 Ostrzeżenie: (0%) |
Zastanawiają mnie właśnie ścinki. Podczas gdy mam otwarte z 3,4 karty przeglądarki i np youtube w tle to są widoczne spadki fps'ów i gra się ścina, odpaliłem skrypt na trochę starszym komputerze to gra ścinała tragicznie. Przeglądając internet wpadłem na grę napisaną także w canvas, która jest o wiele bardziej rozbudowana niż jakiś tam ping pong i działa ona bez ścinek.
Dlatego chciałbym się dowiedzieć czego jest to wina, pętli gry czy może jakiś inny czynnik wpływa na to że gra się ścina? Link do gita z grą https://github.com/BlowofDeath/Canvas.git Link do przykładowej gry http://www.merixstudio.pl/skytte/ |
|
|
14.09.2017, 10:59:42
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 268 Pomógł: 254 Dołączył: 11.06.2009 Skąd: Świętochłowice Ostrzeżenie: (0%) |
Tak, mogą następować spadki klatek, dlatego używa się techniki delta timingu (czyli za każdym razem przelicza się faktyczną liczbę sekund, jaka upłynęła pomiędzy poszczególnymi klatkami).
Bardzo wiele czynników może wpływać, np. złe zarządzanie obiektami w grze, co może doprowadzić do włączania się co jakiś czas garbage collectora i chrupania, niewydajny sposób rysowania, brak akceleracji sprzętowej (np. WebGL paradoksalnie może działać szybciej niż 2D) itp. itd. Dawno się nie bawiłem gamedevem w JS, więc nie jestem w stanie dokładnie podać, czemu ścina. Niemniej na ten temat napisano bardzo dużo artykułów, można poszukać. -------------------- ★Mój blog || Okiem krytyka★
|
|
|
Wersja Lo-Fi | Aktualny czas: 19.04.2024 - 19:50 |