Mettre en pause l'exécution d'un algorithme [Résolu]

Signaler
Messages postés
154
Date d'inscription
samedi 7 janvier 2006
Statut
Membre
Dernière intervention
28 septembre 2008
-
Messages postés
154
Date d'inscription
samedi 7 janvier 2006
Statut
Membre
Dernière intervention
28 septembre 2008
-
Bonjour,

J'utilise dans mon programme, pour l'affichage graphique gluttimerfunc (déclenche un rafraichissement de l'image toutes les 30 millisecondes).
L'image contient notamment un pavé tournant, je ne peux donc pas arrêter le rafraichissement de l'image

Parallement, j'utilise du picking en opengl, et donc, quand je clique sur un objet de ma scène, deux algorithmes se déclenchent l'un après l'autre. J'aimerais cependant que, entre ces deux algorithmes, il y ait une pose de 1000 millisecondes (une seconde) sans que la brique arrête de tourner

Comment faire ?

Merci d'avance

NC

8 réponses

Messages postés
154
Date d'inscription
samedi 7 janvier 2006
Statut
Membre
Dernière intervention
28 septembre 2008

ben le contexte, je vous l'ai déjà expliqué plus haut ;)

Cependant, j'ai compris ce que vous me conseillez, je pense pouvoir le faire, mais pour moi ca a un gros inconvenient : dans le programme ca devient un peu bazar après parce que on retourne toujours avec la fonction appelée par le gluttimerfunc, on casse des fonctions pour y aller ... Existerait-il une autre solution ?
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
Je comprend pas et je vois pas l'intérêt de vouloir attendre :) expliques d'avantage plz
Messages postés
154
Date d'inscription
samedi 7 janvier 2006
Statut
Membre
Dernière intervention
28 septembre 2008

ben en fait, le premier algorithme génère quelques variables qui vont coder pour des effets graphiques (un autre objet de la scène tourne si on clique dessus). J'aimerais que cette rotation soit terminée (donc au bout d'environ 0.8 secondes -> on arrondit à 1) avant de déclencher le second algorithme

Voila ++
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
Bas simplement avant de démarrer le second algo, tu attends que la
rotation soit finis. Genre un bool qui dit que le deuxième algo doit
démarrer a la fin de la rotation. Tu testes des que la rotation est
terminer, tu éxécutes le second algo.
Messages postés
154
Date d'inscription
samedi 7 janvier 2006
Statut
Membre
Dernière intervention
28 septembre 2008

Oué mais dans ce cas là il y a un os :

on reprend :

clic->picking->algorithme1->rotation1
parallèlement gluttimerfunc
bon, la question est : comment attendre, car si je fais comme vous dites, et que j'utilise un bool : on a, tant que rotation1 n'est pas terminée un while qui bouffe tout le processeur et qui empèche le gluttimerfunc de tourner

Je ne vois donc pas trop comment vous voulez que je fasse :(
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
Mais avec ce bool, tu n'as plus besoin de timer. Apres chaque affichage
de l'image, tu regardes si tu as fini la rotation et si l'algo2 doit
etre exécuté, auquel cas, tu l'appelles.
Messages postés
154
Date d'inscription
samedi 7 janvier 2006
Statut
Membre
Dernière intervention
28 septembre 2008

donc ce que vous préconisez et que je mette le "déclencheur" dans la fonction appelé par gluttimerfunc ?

Et que dans ce cas là; je fasse un test du genre : SI non finis à l'affichage précédent AND finit maintenant THEN on lance algo 2 ?
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
Ce que je ferais: Un bool B1 pour dire "l'algo doit etre lancé" puis un autre B2 pour savoir si "la rotation est en cours".

Et donc if B1 and not B2 alors B1 = false puis sque tu veux.


Enfin j'ai du mal a percevoir la solution puisque je vois pas le contexte de ton programme.