Bon je sais que la question de mettre un frame par seconde existe dans la FAQ bien que je n'arrive pas à le trouver maintenant...
En cherchant une information sur une fonction SDL, je suis tomber là-dessus et je me suis dit que cela avait le mérite d'exister...
Comment mettre un nombre d'affichage par seconde avec SDL ?
En utilisant la bibliothèque annexe SDL_gfx, on peut utiliser les fonctions suivantes. A noter que chaque fonction prend un paramètre de type FPSmanager*. C'est bien sûr à votre charge de gérer l'allocation de cette structure (statique ou dynamique) et d'y passer l'adresse.
Pour initialiser la structure générale :
Par défaut le nombre d'images par seconde sera égal à 30.
Code : Sélectionner tout - Visualiser dans une fenêtre à part void SDL_initFramerate(FPSmanager * manager);
Pour choisir un autre nombre taux de rafraichissement, on utilise :
Et pour récupérer le taux actuel :
Code : Sélectionner tout - Visualiser dans une fenêtre à part int SDL_setFramerate(FPSmanager * manager, int rate);
A chaque tour de boucle avant (ou après) le code qui gére l'affichage, on appelle simplement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part int SDL_getFramerate(FPSmanager * manager);
Quelques précisions :
Code : Sélectionner tout - Visualiser dans une fenêtre à part void SDL_framerateDelay(FPSmanager * manager);
- Si le code de dessin est trop long alors l'attente deviendra nulle...
- Il faudra installer la bibliothèque SDL_gfx
- N'oubliez pas de lier la bibliothèque SDL_gfx pour utiliser ces fonctions
- Vous pouvez utiliser les constantes FPS_UPPER_LIMIT, FPS_LOWER_LIMIT, FPS_DEFAULT pour avoir les valeurs maximales, minimales et par défaut du gestionnaire de taux de rafraîchissement.
Voici un code qui permet de montrer l'utilité de ces fonctions (les appels se font tous dans le fichier Main.cpp)...
Si tu veux Laurent, je peux faire un code qui fait juste rebondir un objet sur la fenêtre mais je ne savais si tu voudrais inclure le code dans la question ou non, donc pour le moment je laisse comme cela...
De l'autre côté, le code (avec un seul objet) peut être une contribution pour la page source, à toi de voir...
Jc
Partager