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 » État des touches
Youstones Hors ligne Membre Points: 333 Défis: 0 Message

État des touches

Posté le 06/11/2019 07:04

Salut ! Je reviens après longtemps pour demander s'il est possible de différencier un état "maintenu" d'un état "click" d'une touche ? C'est surtout pour empêcher l'utilisateur de maintenir la touche perpétuellement...


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

Citer : Posté le 06/11/2019 08:05 | #


Il faut que tu comptes toi-même le temps qui s'écoule une fois la touche pressée, je suppose.
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Youstones Hors ligne Membre Points: 333 Défis: 0 Message

Citer : Posté le 06/11/2019 13:28 | #


Donc par exemple je pourrais faire cela ?

(...définition des vars...)
Do
Getkey→K
Loopwhile K≠31
(...du code de mouvements...)
Do
Getkey→K
LoopWhile K=31
(...suite du code et boucle...)


Ajouté le 06/11/2019 à 13:31 :
Et sinon il faudrait rajouter une variable +1→variable avec une conditions disant que si la variable est égale au nombre défini (le temp maintenu) et bien il "stop" le programme ?
Etudiant en informatique à l'Umons, fan de prog en tout genre
Lephenixnoir En ligne Administrateur Points: 24145 Défis: 170 Message

Citer : Posté le 06/11/2019 13:35 | #


Ça ne t'empêchera pas de rester appuyé longtemps. Une autre idée, ce serait...

0→T # Temps de pression
10→S # Seuil "clic"/"pas clic" (à choisir)
0→K # Touche pressée

# Attendre qu'une touche soit pressée
Do:Getkey→K
LpWhile K=0

# Compter le temps jusqu'à ce qu'elle soit relâchée
Do:T+1→T
LpWhile Getkey=K

If T<X
Then # Clic
Else # Pas clic
IfEnd

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

Citer : Posté le 06/11/2019 13:44 | #


Merci !
Etudiant en informatique à l'Umons, fan de prog en tout genre
Disperseur Hors ligne Membre Points: 1830 Défis: 1 Message

Citer : Posté le 06/11/2019 13:55 | #


Sinon pour gérer proprement l'appui des touches:
while 1 #boucle principale

#Actions a executer avant la pression d'une touche

Do
LpWhile Getkey #tant qu'un touche est pressée on attends

Do
LpWhile Not GetKey #Une fois toutes les touches relâchées on attends une pression

#conditions pour la pression des touches
If GetKey = ....
IfEnd...
WhileEnd

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

Citer : Posté le 06/11/2019 15:39 | #


C'est pas vraiment propre parce que comme tu appelles Getkey plusieurs fois au moment de tester les touches pressées, tu peux passer dans plusieurs conditions ou aucune selon le temps que ça se met à s'exécuter. :3
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Disperseur Hors ligne Membre Points: 1830 Défis: 1 Message

Citer : Posté le 06/11/2019 15:41 | #


Dans ce cas il faudrait mettre GetKey -> A par exemple, dans la deuxieme boucle Do-LpWhile et tester Not A au lieu de Not GetKey pour reutiliser A dans les conditions
Youstones Hors ligne Membre Points: 333 Défis: 0 Message

Citer : Posté le 06/11/2019 21:18 | #


Effectivement lephenix avait raison : le fait de mettre plusieurs Getkey faisait capoter la détection de la touche !
Etudiant en informatique à l'Umons, fan de prog en tout genre

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 90 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