Partage

SFML fullscreen

Difference de vitesse (ou d'animation) entre le fullscreen et default.

Sujet résolu
18 août 2018 à 12:42:33

Bonjour,

Il n'y a pas longtemps, j'ai réaliser un petit jeu avec la SFML 2.4 et j'ai utilisé la fonctions "fullscreen" :

    sf::RenderWindow window(sf::VideoMode(800, 600), "VaisStars",sf::Style::Close);// sf::Style::Default Style::Fullscreen;


Après avoir testé la fonctions, j'ai trouvés sa chouette sauf qu'il y a différence considérable de vitesse entre Fullscreen et Default.Le Fullscreen est mille fois plus lent que le fonction default.

Je voudrais donc savoir pourquoi il y a une différence de vitesse et comment réparer ça ??


A savoir, je n’ai pas un mode vidéo valide (Si c'est ça, alors expliqué moi comment avoir un mode vidéo valide parce que sur le site de la SFML je n'ai très bien compris).

Merci de me répondre !!

Vous êtes demandeur d'emploi ?
Sans diplôme post-bac ?

Devenez Développeur web junior

Je postule
Formation
en ligne
Financée
à 100%
18 août 2018 à 12:47:35

Salut,

En Fullscreen, tu es limité par la fréquence de ton écran (60 Fps ?), alors qu'en fenêtré, il dessine tant qu'il peut, donc peut dessiner 500 fois par seconde s'il peut.

Mais en vrai, 60 FPS, c'est très bien. C'est juste que si tu bouges d'un pixel par frame, ça ne va pas.

Recueil de codes C et C++ : http://fvirtman.free.fr/recueil/index.html
18 août 2018 à 12:53:29

Ok et merci.

J'ai fait quelque calcul et mon jeux tourne à 500 fps.

J'ai plus qu'a augmenter la vitesse de tout mes perso et calibrer l'applis à 60 fps.

18 août 2018 à 12:55:40

En effet. Tu as deux approches possibles :

- Soit tu fixes ton framerate a 60 fps et tu bases tout dessus. (tu peux très bien, en mode fenêtré, décider de mettre un delay a la fin de ta boucle si ça va trop vite)

- Soit tu laisses filer les FPS, et tu calcules le mouvement en fonction de la vitesse des FPS (une division a faire pour chaque mouvement)

Recueil de codes C et C++ : http://fvirtman.free.fr/recueil/index.html
18 août 2018 à 13:18:45

Je pense que je vais utilisé la 2 deuxième méthode car elle me parait plus portable.J' utiliserait une fonctions de ce type :

short deplacement(short NBRdepla)
{

/**petit calcul en fonction du nombre FPS puis**/

return NBRdepla;
}



18 août 2018 à 13:30:03

Salut,

Souvent dans les jeux 3D on utilise la 2e, mais parce que tous les déplacements sont en float.

En 2D, si tu utilises des nombres entiers pour les déplacements, tu risques d'avoir des erreurs d'arrondis qui seront vus comme des petits sautillements.

(déplace 70 pixels sur  60 frames, tu auras des frames à 1 pixels, d'autres a 2 pixels, ça se verra).

A toi de voir, il y a 2 écoles. (moi j'aime bien le constant framerate pour le 2D en espace discret)

Mais fait des essais, c'est bien de voir les problématiques par soi même.

Recueil de codes C et C++ : http://fvirtman.free.fr/recueil/index.html
18 août 2018 à 13:42:12

Ok et merci pour cette une aide Fvirtman !!!!!!!!!!!!!!!!!!!!!!!!!!!!

A la prochaine !!!!

SFML fullscreen

× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
  • Editeur
  • Markdown