Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Autres questions


Index du Forum » Autres questions » Mettre en pause un programme [RESOLU]
FlamingKite Hors ligne Membre Points: 516 Défis: 9 Message

Mettre en pause un programme [RESOLU]

Posté le 13/04/2020 18:09

Comment peut-on faire pour mettre un programme en pause ?
Par exemple pour un Snake avec Locate, comment peut-on faire pour mettre le prog en pause jusqu'à ce qu'on réappuie sur une touche ?
j'avais vu ce sujet dans un défi mais je n'ai pas réussi à le faire, et j'en ai besoin



Lephenixnoir Hors ligne Administrateur Points: 24145 Défis: 170 Message

Citer : Posté le 13/04/2020 18:11 | #


Utilise Getkey dans une boucle. Le code suivant attend qu'une pression complète se produise (appui puis relâchement) :

While Not Getkey
WhileEnd
While Getkey
WhileEnd

Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
FlamingKite Hors ligne Membre Points: 516 Défis: 9 Message

Citer : Posté le 13/04/2020 18:13 | #


Ce code c'est pour mettre en pause tant qu'on reste appuyé sur la touche ?
Lephenixnoir Hors ligne Administrateur Points: 24145 Défis: 170 Message

Citer : Posté le 13/04/2020 18:17 | #


Ça attend d'abord qu'on appuie sur une touche (et reste en pause jusqu'à ce moment-là). Si tu sais qu'une touche est pressée et que tu veux attendre son relâchement, la deuxième partie suffit :

While Getkey
WhileEnd

Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
FlamingKite Hors ligne Membre Points: 516 Défis: 9 Message

Citer : Posté le 13/04/2020 18:19 | #


J'ai compris, merci beaucoup

Ajouté le 13/04/2020 à 18:22 :
Mais avec ce système je dois appuyer en continu sur la touche non ?
Disperseur Hors ligne Membre Points: 1830 Défis: 1 Message

Citer : Posté le 13/04/2020 18:24 | #


Sinon moi j'utilise ce code quand je veux attendre que toutes les touches soient relâchées (évite de répéter la boucle pour une même touche) puis attendre qu'une touche soit pressée (n'importe laquelle dans cet exemple) :
While 1
//boucle principale
//..

Do
LpWhile GetKey //attendre que toutes les touches soient relâchées
Do
LpWhile Not GetKey //attendre une pression

//..
//suite du code
WhileEnd

Lephenixnoir Hors ligne Administrateur Points: 24145 Défis: 170 Message

Citer : Posté le 13/04/2020 18:24 | #


Mais avec ce système je dois appuyer en continu sur la touche non ?

Quand tu appuies sur une touche, c'est toujours en continu (jusqu'à ce que tu la relâches) !
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
FlamingKite Hors ligne Membre Points: 516 Défis: 9 Message

Citer : Posté le 13/04/2020 18:27 | #


@Disperseur Ce code ne peut pas correspondre à un jeu comme Snake où pendant un moment toutes les touches sont relâchées en attendant que le serpent avance
Cela dit je garde ce code pour un texte à afficher par exemple

Ajouté le 13/04/2020 à 18:30 :
@Lephenixnoir oui mais est ce que c'est possible que je joue à mon Snake, que j'appuie sur MENU, je relâche MENU, je laisse la calto sur mon bureau, je vais prendre une douche (ou faire de l'escalade je sais pas moi), et j'appuie sur EXE pour relancer le jeu là où il en était ?
Lephenixnoir Hors ligne Administrateur Points: 24145 Défis: 170 Message

Citer : Posté le 13/04/2020 19:52 | #


Bien sûr que c'est possible. Tu n'as même pas besoin de t'embêter avec le relâchement puisque tu es obligé de changer de touche pour quitter le menu de pause.

Dans ta boucle de jeu, au moment où tu traites tes entrées, tu peux ajouter :

If Getkey=48
Then While Getkey≠31
WhileEnd
IfEnd

Essentiellement ce que ce code fait, c'est se mettre en pause quand tu presses MENU (48) et en sortir quand tu presses EXE (31).
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
FlamingKite Hors ligne Membre Points: 516 Défis: 9 Message

Citer : Posté le 13/04/2020 22:19 | #


Super, je viens de tester, et c'est exactement ce que je voulais faire

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 82 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd