[Mini Tuto] Getkey pour un curseur
Posté le 24/05/2012 21:48
Une petite astuce sans prétention mais qui pourrait aider certains: comment faire un GetKey plus agréable pour déplacer un curseur.
En fait le principe est simple, quand on appuie un coup sur une touche ça va détecter un coup, et quand on reste appuiyé longtemps, le curseur va défiler plus vite.
voici le code (facilement adaptable)
Do
Getkey
Ans=0=>0->Q
Ans=>Q+1->Q
Q=6=>5->Q
Q=1=>Break
Q=5=>Break
LpWhile 1
j'éspère avoir aidé ou inspiré certains.
EDIT: explications sur le fonctionnement:
le code en question est à utiliser dans une boucle principale d'un programme pour détecter une touche.
exemple de code:
1->A
Do
Do
Getkey
Ans=0=>0->Q
Ans=>Q+1->Q
Q=6=>5->Q
Q=1=>Break
Q=5=>Break
LpWhile 1
Locate 1,A,"[espace]"
Ans=37=>A+1->A
Ans=28=>A-1->A
A=0=>7->A
A=8=>1->A
Locate 1,A,">"
LpWhile Ans!=31
le résultat de la touche appuyée est stockeé dans Ans, ainsi on peut faire Ans=27=>A+1->A
La variable Q va s'incrémenter tant que='un touche est apuiyée
donc, à la première pression d'une touche, la boucle va se briser et permettre la détection de la touche une fois
si l'utilisateur relache la touche entre Q=1 et Q=4, alors Q revient à zero, ce qui permet de limiter la sensibilité du GetKey, mais sans le ralentir.
Lorsque Q atteint un certain seul (ici 5), la boucle sera brisée systématiquement, et le getkey deviendra hypersensible.
En résumé, ce code permet d'avoir une bonne ergonomie pour par exemple déplacer un curseur (dans un menu par exemple).
L'utilisateur n'aura pas à se faire ch*** à faire une pression ultra courte sur une touche pour déplacer d'un cran, et si il veux faire défiler plus vite, il peux laisser appuyé plus longtemps.
Citer : Posté le 25/05/2012 12:12 | #
c'est un truc très simple... je vois pas l'utilité de poster un tuto pour ça...
I own a graph 3575+.
Citer : Posté le 25/05/2012 16:43 | #
Tout le monde n'y pense pas forcément
Jouez à 6 sur une seule calto : Curve Fever
Un die and retry qui vous fera bieeeen rager Test Andropov
un très bon sokoban
le seul vrai jeu de foot en basic : FIFA 12
Ca c'est ce que j'appelle un jeu de reflexion jewel master
Qui vaincra l'intelligence artificielle de cet othello
Le célèbre pacman
Et tant d'autres BTL's games
Le jeu du mois de Novembre et award du jeu le plus dur de l'année 2013 MultiTask, testez-le
Citer : Posté le 25/05/2012 18:33 | #
Si tu veux faire un tuto, alors fais-en un complet. Tu mets ''facilement adaptable'', mais explique comment
Citer : Posté le 25/05/2012 19:45 | #
je parlais au niveau langage
et j'ai jamais dit que c'était compliqué
juste pratique et bon à savoir
après le terme de tuto est assez erroné
ya pas vraiment besoin de tuto ou alors vous vous contredisez Cartix et Vdragon
si c'est simple pas besoin d'expliquer
Citer : Posté le 25/05/2012 19:51 | #
je trouve ton post utile dans la mesure ou on n'y pense pas forcément, mais tu pourrai expliquer en quoi c'est facilement adaptable (du genre explique ce que tu appel ''curseur'', met à quoi correspond le 5, ...)
Citer : Posté le 25/05/2012 20:58 | #
bah
est-ce que tu as compris?
oui
est-ce que tu as eu besoin d'exlications sur le fonctionnement?
non
je pars du principe que toute personne capable de programmer saisira le concept.
Citer : Posté le 25/05/2012 21:04 | #
le truc c'est qu'un tuto sert aux gens qui apprennent à programmer
donc c'est plus sympa pour eux de leur expliquer ce qui se passe
Jouez à 6 sur une seule calto : Curve Fever
Un die and retry qui vous fera bieeeen rager Test Andropov
un très bon sokoban
le seul vrai jeu de foot en basic : FIFA 12
Ca c'est ce que j'appelle un jeu de reflexion jewel master
Qui vaincra l'intelligence artificielle de cet othello
Le célèbre pacman
Et tant d'autres BTL's games
Le jeu du mois de Novembre et award du jeu le plus dur de l'année 2013 MultiTask, testez-le
Citer : Posté le 25/05/2012 22:38 | #
bon ok ok j'édite