Partage
  • Partager sur Facebook
  • Partager sur Twitter

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 !!

    • Partager sur Facebook
    • Partager sur Twitter
      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.

      • Partager sur Facebook
      • Partager sur Twitter

      Recueil de code 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.

        • Partager sur Facebook
        • Partager sur Twitter
          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)

          • Partager sur Facebook
          • Partager sur Twitter

          Recueil de code 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;
            }



            • Partager sur Facebook
            • Partager sur Twitter
              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.

              • Partager sur Facebook
              • Partager sur Twitter

              Recueil de code 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 !!!!

                • Partager sur Facebook
                • Partager sur Twitter

                SFML fullscreen

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown