IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GLUT Discussion :

Problème de fluidité


Sujet :

GLUT

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 77
    Points : 46
    Points
    46
    Par défaut Problème de fluidité
    Bonsoir à tous;

    Voila, je débute avec opengl + glut en c++ et j'ai fait un petit personnage que je fais bouger automatiquement. Pour ça, j'incrémente des variables à chaque fois que la fonction d'affichage est appelée.

    Enfin, à la fin de ma fonction d'affichage, j'appelle glutPostRedisplay();

    Le problème est que ma petite animation est toute saccadée et je pense que c'est du à ma manière de faire le rafraichissement.

    Donc pouvez vous m'aider à comprendre comment je dois faire, ou me donner la fonction à utiliser .

    Merci !!!

  2. #2
    Modérateur
    Avatar de nouknouk
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    1 655
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 655
    Points : 2 161
    Points
    2 161
    Par défaut
    Salut,

    Pour ça, j'incrémente des variables à chaque fois que la fonction d'affichage est appelée.
    Ca ne résoudra probablement pas tout, mais je te conseille de déplacer ton personnage non pas d'une valeur constante à chaque image, mais d'une valeur en fonction du temps qui s'est écoulé depuis le dernier déplacement. Concrètement, au lieu de faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    void deplacePerso() {
       monPerso.x = monPerso.x + 10;
    }
    tu fais quelque chose comme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    long lastDeplacementTimeMsec = -1;
    double vitesseXPerSecond = 10;
    double vitesseYPerSecond = 5;
     
    void deplacePerso() {
       if (lastDeplacementTimeMsec ==-1) { // première image.
          lastDeplacementTimeMsec = getTimeMilliSeconds();
       }
       else {
          long currentTimeMsec = getTimeMilliSeconds();
          long timeElapsedMsec = currentTimeMsec - lastDeplacementTimeMsec;
     
          monPerso.x = monPerso.x + (vitesseXPerSecond * (timeElapsedMsec / 1000.0));
          monPerso.y = monPerso.y + (vitesseYPerSecond * (timeElapsedMsec / 1000.0));
          lastDeplacementTimeMsec = currentTimeMsec;
       }
    }

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 77
    Points : 46
    Points
    46
    Par défaut
    Bon alors déjà merci à toi nouknouk, même si ce n'était pas la réponse à ma question, c'est toujours bien d'améliorer le code.
    Bon ensuite la faute était que je n'avais pas mis GLUT_DOUBLE à l'initialisation de mon "DisplayMode" et oui les fautes sont souvent idiotes....
    Désolé pour le dérangement...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de fluidité pc
    Par tanaka59 dans le forum Ordinateurs
    Réponses: 4
    Dernier message: 08/03/2014, 13h08
  2. Réalité augmentée problème de fluidité
    Par Netdroid dans le forum Android
    Réponses: 7
    Dernier message: 23/07/2012, 14h17
  3. [SFML] Problème de fluidité lors du déplacement de la vue
    Par maxime3112 dans le forum Programmation multimédia/Jeux
    Réponses: 2
    Dernier message: 12/02/2012, 00h22
  4. Problème de fluidité online
    Par ackan dans le forum Flash
    Réponses: 2
    Dernier message: 17/04/2007, 12h52
  5. Problème d'installation oracle 8.1.7 sous NT
    Par Anonymous dans le forum Installation
    Réponses: 7
    Dernier message: 02/08/2002, 14h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo