Messagerie


avoir un fps constant

890 messages

lundi 5 septembre 2016 à 08:46
Bonjour à toutes et à tous,

Je n'arrive pas à avoir un fps constant entre mes différents tests de device : certaines fois j'ai 30 (sur samsung galaxy tab 2), d'autre fois j'ai 60 (Galaxy tab 4)... Evidemment cela s'en ressent sur le GP car les anims vont trop vites, toutes les boucles avec un always sont impactées.

Quelle est votre méthode pour avoir un fps constant ?

Merci de votre aide :)
conceptgame
429 messages
Fusion 2.5 Dev
Fusion 2.5+ Firefly Exporteur iOS Exporteur Android
lundi 5 septembre 2016 à 09:22
Bonjour arturh,

j'aurais dit tout bêtement l'option "Machine independent speed" dans les Options du Runtime de l'application. Je ne me souviens plus si cela marche bien sur Android. A essayer donc.
890 messages

lundi 5 septembre 2016 à 11:35
bonjour conceptgame !
Merci de ton retour !
Je vais essayer et je te dis çà :)
890 messages

lundi 5 septembre 2016 à 14:57
visiblement cela fonctionne. Sur android, je dépasse légèrement la valeur fixée (62/63 fps). Mais ce dépassement accélère le jeu comme si elle était doublée (entre 60 et 120 fps : le fps est à 120 ?)
Eagle4
241 messages
Fusion 2.5 Dev
Fusion 2.5+ Exporteur Android Exporteur HTML5 Exporteur iOS
mercredi 7 septembre 2016 à 04:15
Il est très déconseillé d'utiliser l'option machine independant speed car elle crée un décalage entre la partie graphique et l'exécution de la grille d'événement. Or fusion est justement basé sur ce calage (comme les collision qui sont exécutés à chaque affichage)

Concernant les différences avec deux framerate different, il faut assumer que ça rame et faire tout ramer de la même façon. Autrement dit il vaut mieux se baser sur le timer du framerate et ne jamais avoir recours au timer qui lui se base sur le temps. Donc remplacé toutes les 00,05s par un "timer mod(3) = 0" par exemple qui va exécuter ta condition toutes les trois images affichés.

Le mieux est évidement de tenter d'avoir un framerate toujours fluide a 60 im/s pour n'avoir aucun soucis. Sur Android par exemple il faut savoir que l'écriture/lecture d'un fichier ini se fait directement depuis le fichier de la mémoire (pas de fichier temporaire en mémoire pour accélérer le processus) ce qui rend ces accès vachement (VACHEMENT !!) plus lent que sur pc ou sur iOS. Le mieux Étant donc d'éviter de lire/écrire dans un always par exemple. Il vaut bien mieux stocker dans des compteurs en attendant l'enregistrement définitif.

Personnellement je trouve que la plateforme Android est de loin la plus difficile à coder car c'est la moins performante et la plus hétérogène :s
Utilisateurs en ligne
  • Aucun utilisateur en ligne
  • 39 visiteurs au total

Derniers messages