![]() |
![]() |
![]()
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: 717 Pomógł: 120 Dołączył: 18.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
Cytat 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. 1. może jest na 10 FPSach? Weź sprawdź ile faktycznie masz klatek na sekundę. To że nastawiłeś na tyle to nic nie znaczy. 2. możesz uniezależnić ruch od FPSów. Mierzysz ile faktycznie upłynęło czasu między obecną klatką a klatką poprzednią a potem wszelki ruch mnożysz przez wartość czasu. czyli coś jak (pseudokod): Kod UPDATE: timeDelta = now - lastTime ... platform.x += someCalculations * timeDelta platform.y += 1 * timeDelta ... lastTime = now tym sposobem jeśli obiekt ma przemierzyć 600 pikseli (przykładowo) w czasie jednej sekundy, to i tak to zrobi, niezależnie czy będzie 10 czy 60 klatek na sekundę (bez tego przy mniejszych FPSach by wolniej chodził). Jednak to ci nie powiększy FPSów, a jedynie dokona korekty ruchu. Być może będzie trzeba zrobić jakąś optymalizację, bo może gdzieś masz coś, co ci zamula. (testuj też w różnych przeglądarkach - ta sama gra na Chrome może szybciej działać niż na Firefoxie). Ten post edytował PrinceOfPersia 9.12.2014, 22:11:26 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 10.10.2025 - 20:59 |