![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 14.12.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam problem, gdyż robie grę w html5 oraz javascript i płynność gry zalezy jakby od mocy komputera (z tego co zaobserwowałem) Pętla gry wygląda tak:
i w GameLoop dziają różne akcje, jak nasłuchwianie klwiszy, rysowanie i renderowania grafiki itd... Gdy grę uruchamiam na komputerze, chodzi płynniutko, ale gdy włącze ja (oczywiscie w tej samej przeglądarce) na starym laptopie gra chodzi jakby była na 10 fps'ach. Da się temu jakoś zapobiec? Ten post edytował trollman 9.12.2014, 13:29:35 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 14.12.2012 Ostrzeżenie: (0%) ![]() ![]() |
trueblue
Tak słyszałem i zastosowałem taki kod
Otrzymałem efekt wręcz przeciwny, gra tak przyspieszyła aż wydawało sie, że chodzi nienaturalnie jak przyspieszony film w stosunku do starego kodu, więc nie wiem czy to jest dobre? PrinceOfPersia, dzięki za radę, sprawdzę jak tylko wróce do domu. I swoją drogą mam kolejne pytanie odnosnie gry, żeby nie towrzyc już nowego wątku. Czy porpawne jest tworzenie gry na jednym canvasie? ... Obecnie tak mam bo też się spotkałem z takimi grami, ale niektórzy to rozdzielają. Tło na innym, bohater na innym a aktywne elementy otoczenia na innym. (Pytam bo, chciałem też obrócić obrazek bohatera o 180 stopni i mozliwe jest tylko odwócenie całego canvasa a nie pojedyńczego img = new Image() ) |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 717 Pomógł: 120 Dołączył: 18.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
no tak, ale moje rozwiązanie z liczeniem "ile czasu upłynęło" nie rozwiąze ci problemów płynności a jedynie problemy z synchronizacją czasową. Bo bez tego jak będziesz miał 10 klatek na sekundę, postać będzie poruszać się 6 razy wolniej.
Czy porpawne jest tworzenie gry na jednym canvasie? ... Obecnie tak mam bo też się spotkałem z takimi grami, ale niektórzy to rozdzielają. Tło na innym, bohater na innym a aktywne elementy otoczenia na innym. Z innych powodów się to czasem rozdziela. coś na zasadzie warstw w Photoshopie się czasem robi. Jeśli tło jest statyczne, to wystarczy raz narysować na warstwie, i nie tracić mocy komputera na rysowanie tła od początku, tylko umieszcza się kilka canvasów żeby rysować tylko te elementy, które się ruszają, a statyczne tło na innym itp. ale to jest optymalizacja, którą można dokonać, ale technicznie tak samo możesz korzystać z jednego canvasa i na nim wszystko rysować. Przykłady podał markuz. EDIT: aha, i możesz zmierzyć co ci zżera kompa. W Dev Toolsach Chrome masz audyty np. "ta i ta funkcja zajmuje ci tyle i tyle czasu". możesz samemu liczyć też, np. spróbuj wykomentarzować jakiś kod i zobacz czy szybciej działa.itp. Ten post edytował PrinceOfPersia 10.12.2014, 19:31:28 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 12.10.2025 - 08:48 |