Temporisation

Palca_Ulem Messages postés 33 Date d'inscription dimanche 2 mai 2004 Statut Membre Dernière intervention 18 mai 2004 - 16 mai 2004 à 12:05
cs_AmK Messages postés 368 Date d'inscription jeudi 13 mars 2003 Statut Membre Dernière intervention 27 janvier 2010 - 17 mai 2004 à 22:46
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

cs_GoldenEye Messages postés 527 Date d'inscription vendredi 14 septembre 2001 Statut Membre Dernière intervention 6 octobre 2008 4
16 mai 2004 à 13:35
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
0
Palca_Ulem Messages postés 33 Date d'inscription dimanche 2 mai 2004 Statut Membre Dernière intervention 18 mai 2004
16 mai 2004 à 14:10
Justement, j'ai essayé quelques choses avec les timers mais ça n'a pas marché.
0
cs_GoldenEye Messages postés 527 Date d'inscription vendredi 14 septembre 2001 Statut Membre Dernière intervention 6 octobre 2008 4
16 mai 2004 à 14:40
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
0
Palca_Ulem Messages postés 33 Date d'inscription dimanche 2 mai 2004 Statut Membre Dernière intervention 18 mai 2004
16 mai 2004 à 14:59
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/
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_GoldenEye Messages postés 527 Date d'inscription vendredi 14 septembre 2001 Statut Membre Dernière intervention 6 octobre 2008 4
16 mai 2004 à 15:49
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
0
Palca_Ulem Messages postés 33 Date d'inscription dimanche 2 mai 2004 Statut Membre Dernière intervention 18 mai 2004
16 mai 2004 à 16:06
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/
0
cs_AmK Messages postés 368 Date d'inscription jeudi 13 mars 2003 Statut Membre Dernière intervention 27 janvier 2010 1
17 mai 2004 à 22:46
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 !!!
0
Rejoignez-nous