Seuls les membres ayant 30 points peuvent parler sur le chat.

Forum Casio - Autres questions


Index du Forum » Autres questions » État des touches
Youstones Hors ligne Membre Points: 332 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 Hors ligne Administrateur Points: 17447 Défis: 142 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.
Youstones Hors ligne Membre Points: 332 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 ?
Mon cerveau se répète tous les jours la mythique phrase : "Houston, je crois que nous avons un problème"
Lephenixnoir Hors ligne Administrateur Points: 17447 Défis: 142 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
Youstones Hors ligne Membre Points: 332 Défis: 0 Message

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


Merci !
Mon cerveau se répète tous les jours la mythique phrase : "Houston, je crois que nous avons un problème"
Disperseur Hors ligne Membre Points: 1736 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

Mes meilleurs jeux
N'hésitez pas, notez !

Jeux BasicCasio / CBasicCasio:
-World Tank War II
-Apollo 11
-GeoGraph ! Élu Jeu du Mois de Mars 2019 !
Jeux C:
-Planétarium 2 ! Chef d'Oeuvre !


√(2+2-2+2-2+2+2-2-2-2) = 0
Lephenixnoir Hors ligne Administrateur Points: 17447 Défis: 142 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
Disperseur Hors ligne Membre Points: 1736 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
Mes meilleurs jeux
N'hésitez pas, notez !

Jeux BasicCasio / CBasicCasio:
-World Tank War II
-Apollo 11
-GeoGraph ! Élu Jeu du Mois de Mars 2019 !
Jeux C:
-Planétarium 2 ! Chef d'Oeuvre !


√(2+2-2+2-2+2+2-2-2-2) = 0
Youstones Hors ligne Membre Points: 332 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 !
Mon cerveau se répète tous les jours la mythique phrase : "Houston, je crois que nous avons un problème"

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
Pour coloriser votre code, cliquez ici.
Sinon cliquez sur le bouton ci-dessous.
: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 v42 © créé par Neuronix et Muelsaco 2004 - 2020 | Il y a 60 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