|
Publicité | ||||||||||||||||||||||
|
|
#1 | ||||||
|
Membre du Club
![]() |
Impossible de réguler mon framerate à 60 FPS !
J'ai eu beau chercher, je vois pas du tout ou est le problème (passé ma soirée dernière et cette journée la dessus Mon code main fonctionne très bien (le cube tourne sans problèmes, mais je suis à 1800 FPS et j'utilise mon cpu à 100%, donc pas très pratique.) Le code : Déclarations : Code :
Dans le while principale : Code :
Mais il semble que dès que je passe par un objet, ça fous le merdier. (Et encore plus bizarre, quasiment la même classe fonctionne très bien en ruby, passé au C++, cela ne fonctionne plus... ) Et j'ai essayé : déclaration de la sdl dans le main, pas par l'objet, idem avec l'ouverture de la fenêtre. Rien ne marche. Par contre, si je remplace mon code par celui du sdz, ça passe :\ Je comprend plus rien. Voici mon main : Code :
NOTE : Pour le code du main.cpp, avec ou sans ajout du #include <cstdlib>, aucuns changements. De plus le code du SDZ fonctionne si je remplace cette déclaration préprocesseur par iostream. [EDIT] j'avoue, ma méthode de limitation des FPS n'est pas ce qu'il y a de mieux, mais actuellement je n'ai pas trouvé mieux.
Dernière modification par Caro-Line ; 23/09/2010 à 09h13. |
||||||
|
|
00
|
|
|
#2 | ||||
|
Membre Expert
![]() Inscription : octobre 2006 Messages : 1 325 ![]() |
Tu fais quelques erreurs:
Déjà: Code :
Ensuite tu calcules deux fois ellapsed_time.. Tu devrais calculer le temps qui reste juste avant le SDL_Delay, pas avant le dessin, donc ça ferait quelque chose comme ça: Code :
|
||||
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() |
Je te remercie beaucoup, après relecture du code, je me suis rendu compte de l'erreur dont tu signale l'existence : la non initialisation de "start_time", en fait je ne l'avais pas vu car celle-ci se faisait juste avant le code de gestion des évènements !
Après, je vais être franc, je ne me suis pas plus posé de question que ça, j'ai simplement copié le code (ma priorité n'est pas sur ce point actuellement, mais vu le temps que je viens d'y passer, je crois que je vais finaliser ça afin d'être tranquille par la suite...). Encore merci, je vais étudier tes réponses !
Dernière modification par Caro-Line ; 23/09/2010 à 09h13. |
|
|
00
|
|
|
#4 |
|
Membre actif
![]() |
|
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() |
[Bon, problème résolu, le moteur tourne bien à 60FPS et pas plus
Sinon, je me permet de te contredire sur certains points Captain_JS, oui, ma boucle principale consommera surement 100% du cpu... quand je ferais de gros calculs et autres (IA, rendu, calcul physiques, etc...), mais actuellement, avec cette régulation des FPS, je ne consomme pour ainsi dire rien. |
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Inscription : octobre 2006 Messages : 1 325 ![]() |
CaptainJS: En fait SDL_Delay libère le CPU pendant le temps que le programme n'est pas utilisé.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com