Autor Wątek: Andengine drastyczny spadek FPS  (Przeczytany 2204 razy)

Offline kokos22

  • Użytkownik

# Styczeń 03, 2014, 16:08:46
Od niedawna bawię się tym silnikiem. Kombinuje coś z parralaxBackground wszystko ładnie wygląda jednak co chwilkę płynna animacja ruchu przycina się.  Początkowo myślałem, że to wina wymiarów bitmap rzędu 800x600. Ale jak dodałem logowanie FPS`ów do updateHandlera okazało się, że FPS`y są rzędu 78-80, a przy tych ścięciach spadają do zera po czym wracają do swojego poziomu. Czym mogą być spowodowane te skoki ? 
W momencie spadków tylko AutoParallaxBackground jest podpięty do sceny, innych handlerow nie zauważyłem.

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline shinosuke

  • Użytkownik

# Styczeń 04, 2014, 16:44:31
a używasz
Cytuj
yourSprite.setCullingEnabled(true);
?

jeśli nie to na prawdę warto, bo ta linijka sprawi, że sprite będzie renderowany dopiero gdy będzie potrzebny (widoczny na ekranie), jeśli będzie poza kamerą to nie (wyjątek od tej reguły stanowią elementy, które mają być ciągle widoczne jak np. hud, bo sprawdzanie też troszkę kosztuje).

jeśli tak, to spróbuj wyłączyć :)

Potrafi to na prawdę przyśpieszyć Twoją gierkę.

Samego AutoParallaxBackground też używam bez większych problemów i na dużych plikach i na słabiutkim sprzęcie (wszystko płynnie tak jak w przykładach dołączonych do silnika, więc może problem leży gdzie indziej).

Wzmiankę powyżej jak i wiele dobrych innych porad znajdziesz tutaj:
http://www.matim-dev.com/tips-and-tricks---how-to-improve-performance.html

chociaż cały tutorial też jest bardzo dobry i wart polecenia:
http://www.matim-dev.com/tutorials.html

« Ostatnia zmiana: Styczeń 04, 2014, 16:51:36 wysłana przez shinosuke »

Offline kokos22

  • Użytkownik

# Styczeń 07, 2014, 12:49:21
Może to wina wersji androida ? Uruchomiłem apke na emulatorze BlueStacks (komp porządne parametry) i fps`y lecą w kosmos ale zacięcia dalej występują.

Offline ArekBal

  • Użytkownik

# Styczeń 07, 2014, 15:45:04
Czy to Java?

Garbage Collector?

Najwidoczniej alokujesz za dużo obiektów w locie.
Spróbuj alokować w jakichś charakterystycznych miejscach (początek levelu?).
A potem pobierać z puli.
« Ostatnia zmiana: Styczeń 07, 2014, 15:47:12 wysłana przez ArekBal »

Offline kokos22

  • Użytkownik

# Styczeń 07, 2014, 23:30:19
Zainstalowałem libGdx, po utworzeniu sceny dodałem 1 sprite (50x50) i co update przesuwam go o 5 pikseli pomnożonych przez czas od ostatniej klatki i też widać, że występują takie same problemy. Może jakaś felerna wersja JDK ? (Uruchomione jako aplikacja desktopowa) Do tego mam pytanie odbiegające trochę od tematu - czy jest różnica w wydajności pomiędzy przesuwaniem kamery a przesuwaniem obiektu ? (1 kamera 1 obiekt)?
« Ostatnia zmiana: Styczeń 07, 2014, 23:45:54 wysłana przez kokos22 »

Offline ArekBal

  • Użytkownik

# Styczeń 08, 2014, 10:50:17
Może timer masz zryty.

Cytuj
czy jest różnica w wydajności pomiędzy przesuwaniem kamery a przesuwaniem obiektu ? (1 kamera 1 obiekt)?
Zależy co robisz, ale przy założeniu że "normalnie" to nie będzie żadnej.