J'ai une animation dans un JPanel qui se met à jour via un javax.swing.Timer. Ce temporisateur peut être construit pour avoir un délai en millisecondes qui doit être un entier. Si je devais avoir la mise à jour de JPanel 60 fois chaque seconde, je fixerais le retard à 1000/60 = ~ 16.6666. Cependant, ce délai doit être un int, j'ai donc la possibilité d'arrondir à la hausse ou à la baisse. Pour un délai de 16 millisecondes, l'animation serait mise à jour à 62,5 images par seconde. Arrondir à un retard de 17 millisecondes donnerait un taux de trame de 58.824.Java Timer Swing Exactement 60 fps
Comment procéder pour avoir une fréquence d'images de 60 images par seconde exactement?
Merci d'avance.
La minuterie du système a typiquement une résolution de ~ 15ms. Il est donc peu probable que vous ayez la résolution précise que vous souhaitez. –
Même si la minuterie du système est inexacte, il convient de faire la moyenne des erreurs dans le temps (si ma logique n'est pas fausse) et de toujours donner les mêmes fréquences d'images non désirées (ci-dessus). – olta8