Temporisation

Signaler
Messages postés
33
Date d'inscription
dimanche 2 mai 2004
Statut
Membre
Dernière intervention
18 mai 2004
-
Messages postés
368
Date d'inscription
jeudi 13 mars 2003
Statut
Membre
Dernière intervention
27 janvier 2010
-
Bonjour, j'essaie de faire un jeu avec allegro et je voudrais savoir comment faire pour que ma boucle principale attende un certain temps avec de recommencer, et également comment faire un système de pause, pour que le jeu s'arrête complètement quand on appuie sur une touche et reprenne au même endroit lorsqu'on réappuie dessus.

Merci d'avance.

7 réponses

Messages postés
527
Date d'inscription
vendredi 14 septembre 2001
Statut
Membre
Dernière intervention
6 octobre 2008
3
readkey();
while(keypressed());

des choses comme cela
sinon il y a les timers regarde la doc d'allegro
Optimiser, c'est bien, déboguer c'est mieux
Messages postés
33
Date d'inscription
dimanche 2 mai 2004
Statut
Membre
Dernière intervention
18 mai 2004

Justement, j'ai essayé quelques choses avec les timers mais ça n'a pas marché.
Messages postés
527
Date d'inscription
vendredi 14 septembre 2001
Statut
Membre
Dernière intervention
6 octobre 2008
3
Imaginons que la touche de pause soit P
dans un timer tu testes la touche P
si celle ci est pressée met un flag a 1
Dans le timer d'anim ne bouge les éléments que si le flag est à 0
Optimiser, c'est bien, déboguer c'est mieux
Messages postés
33
Date d'inscription
dimanche 2 mai 2004
Statut
Membre
Dernière intervention
18 mai 2004

D'accord, mais ça implique que le jeu n'est en pause que si on appuie sur une touche. Ce que je veux c'est que lorsqu'on appuie une première fois ça met en pause et ça reste en pause tant qu'on appuie pas une seconde fois.

Et concernant mon autre question, est-ce qu'il y a moyen de faire patienter quelques temps une boucle et qu'elle reprenne ensuite automatiquement ? Le problème c'est que j'ai un sprite en deux images, pour donner une certaine impression de mouvement. Les deux images s'alternent bien mais beaucoup trop vite, c'est pourquoi je veux ralentir la boucle.
____________________
http://www.mozilla.org/products/firefox/
Messages postés
527
Date d'inscription
vendredi 14 septembre 2001
Statut
Membre
Dernière intervention
6 octobre 2008
3
Mais mon explication fonctionne
Lorsque l'on appuie sur la touche P le flag est mis à 1 et empêche le jeu de tourner !
Ensuite tu vides le keyboard_buffer et tu attends gentiment qu'on appuie de nouveau sur P pour reprendre le jeu pour mettre le flag à 0 !
flag = !flag pour passer de 0 à 1 ou de 1 à 0.

Quant à l'anim ça se gère avec un timer
Tous les x dixièmes de sec tu incrémentes un numero_anim_en_cours
Et tes sprites sont dans un tableau
Dans ta boucle tu affiches le sprite[numero_anim_en_cours]

Optimiser, c'est bien, déboguer c'est mieux
Messages postés
33
Date d'inscription
dimanche 2 mai 2004
Statut
Membre
Dernière intervention
18 mai 2004

Tu pourrais me passer un code, stp, parce que j'ai déjà essayé pas mal de choses avec timer mais ça ne fonctionnait jamais.
____________________
http://www.mozilla.org/products/firefox/
Messages postés
368
Date d'inscription
jeudi 13 mars 2003
Statut
Membre
Dernière intervention
27 janvier 2010
1
Palca_Ulem c'est pourtant trés simple !!!
j'ai moi meme eu des pb avec les timers mais un jour j'ai commencé à m'y mettre tranquillement tout doucement , essaye de les placer dans ton programme ( je parle du install_int_ex...) et regarde le résultat et tu verras que ça va venir tout seul !!!
quand au reste avec de simples if - else if tu pourrais y arriver !!!