Je viens de faire un jeu de Pong en Java mais j'ai quelques questions sur le fonctionnement du FPS. Actuellement, le jeu tourne aussi vite que l'ordinateur peut le gérer et si je cours le jeu sur un ordinateur plus rapide, alors le jeu accélérera beaucoup plus vite que la normale. Je résolu ce problème en ajoutant une minuterie pour éviter le jeu de courir trop vite:Java - FPS fonctionne correctement
timer = new Timer(5, this);
timer.start();
Cependant, en raison de la minuterie, le FPS ne peut pas aller sur une limite spécifique, peu importe à quelle vitesse l'ordinateur est. Quand le FPS tombe, au lieu de ralentir le programme, je veux qu'il soit "à la traîne" comme dans un vrai jeu sur ordinateur. Comment puis-je faire cela? Je veux forcer le jeu à tourner à une certaine vitesse afin que le FPS baisse au lieu que le programme ralentisse.
Mon compteur FPS ressemble actuellement à ceci:
if(System.currentTimeMillis() - time >= 1000){
time = System.currentTimeMillis();
fps = newfps;
newfps = 0;
}
else{
newfps++;
}
g.setFont(new Font("Arial", Font.BOLD, 25));
g.drawString(fps + "", 5, 22);
S'il vous plaît me dire si je suis pas clair au sujet de ma question.
Que voulez-vous dire par "retard"? Souhaitez-vous que le dessin se produise plus lentement que le jeu ne fonctionne? – Igor
Si le FPS tombe pour une raison quelconque, je veux que le programme saute des images au lieu de ralentir le programme entier. Je veux arrêter le programme de ralentir ou de courir trop vite. – enheldel
Le FPS sera éventuellement limité par votre matériel d'affichage. Jetez un coup d'œil à l'implémentation de VSynch dans votre jeu afin de rendre les données à un taux optimal pour votre GPU et votre moniteur. En outre, assurez-vous que vous utilisez le double tampon - https://docs.oracle.com/javase/tutorial/extra/fullscreen/doublebuf.html –