Dans cette partie nous aurons besoin de boucle (et oui encore). Cette boucle c'est repeat elle va nous servir avec la fonction getkey. La fonction getkey sert à savoir sur quelles touches l'utilisateur tape. Chaque touche va correspondre à un numéro par exemple le 21 sera la touche 2nd.
Comme une image vaut mieux qu'un long discours, en voilà une de toutes les touches numérotées.
Nous allons tout simplement enregistrer la touche qui sera enfoncée par l'utilisateur dans une variable choisie par l'usage de cette fonction.
Vous pouvez constater que la touche [ON] n'a pas de numéro attribué. Cela permet lors d'un plantage, comme par exemple une boucle infinie, de faire un break.
Maintenant étudions l'utilisation de cette-dite fronction:
PRGM:GETKEY
:Getkey
Z
:Disp Z
Dans ce minuscule programme nous enregistrons la touche enfoncée par l'utilisateur dans la variable Z puis nous l'affichons.
Quelqu'un: Dis moi c'est bidon ton truc, il affiche 0 à chaque fois
Et non il n'est pas "bidon", le getkey gette la touche enfoncée immediatement, pendant la lecture même de cette commande Getkey.
Vous vous demandez si il va falloir être très rapide ?
Pas besoin je vous rassure.
Nous allons nous servir d'une boucle, en principe on se sert de repeat, cette boucle prend toute son utilité en se couplant avec la fonction Getkey. Voici la syntaxe d'un petit programme qui affiche la valeur des touches enfoncées par l'utilisateur.
PRGM:GETKEY2
:0
Z
:repeat Z=105
:Getkey
Z
:End
:Disp "touche enter"
Explications:
Z à pour valeur 0
Répéter les instructions qui suivent jusqu'a que Z soit égal à 105, ce qui correspond à la valeur de la touche [ENTER]
Capter la valeur attribuée à la touche enfoncée
Fin de la boucle
Afficher "touche enter"
NB: Lorsqu'aucune touche n'est enfoncée la valeur que prend Z est 0 donc votre boucle tournera tant que vous n'aurez pas préssé la touche [ENTER].( ou [ON] bien entendu.)
Cela est très simple, lorsque vous voulez vous déplacer dans une piece sur votre écran, vous aimeriez faire en sorte que l'on puisse se déplacer avec le pad de votre machine. On prend donc la valeur des touches du pad et lorsqu'elles sont pressées par le joueur alors on agit en consequence.
Créons donc un programme qui permettra a "0" de se déplacer sur l'écran selon les touches enfoncées
Il faut en tout premier lieu donner des coordonnées d'affichage à 0 qui puissent varier selon notre vouloir, ce ne seront donc pas des nombres mais des variables.
On a donc:
:ClrHome
:4
X
:4
Y
:OutPut(Y,X,"0"
Notre personnage est maintenant affiché à l'écran, il nous faut le faire bouger. Avec, avec ? Du getkey.
Les touches correspondantes sont aux numéros 24,25,26,34 comme vous pouvez le voir sur l'image plus haut. On se doit donc de fixer des conditions pour chacune des touches pressées.
:4
X
:4
Y
:ClrHome
:OutPut(Y,X,"0"
:repeat Z
0
:Getkey
Z
:End
:If Z=24
:X-1
X
:If Z=26
:X+1
X
:If Z=25
:Y-1
Y
If Z=34
:Y+1
Y
Bon c'est bien gentil tout cela mais lorsque je teste ton ***** de programme je ne peux me déplacer qu'une seule et unique fois.
Zexact.
En effet ce programme ne fonctionne qu'une fois. On va donc se servir de ... Lbl et Goto !! Génial ? non ca a pas l'air ? bon OK
Il faut donc prévoir, une fois le mouvement précédent accompli,
d'éffacer l'écran de la position précédente du personnage et recapter une touche enfoncée pour pouvoir effectuer le mouvement suivant.
Donc par une logique pure on replacera notre Lbl avant le ClrHome et APRES la définition de X et Y à 4. Si vous placez le Lbl avant, X et Y vont retourner à 4 à chaque fois. (Et donc le déplacement n'aura pas lieu)
Le Goto est tout à la fin pour que tout le programme soit lu.
Cela nous donne:
:4
X
:4
Y
:Lbl 1
:ClrHome
:OutPut(Y,X,"0"
:repeat Z
0
:Getkey
Z
:End
:If Z=24
:X-1
X
:If Z=26
:X+1
X
:If Z=25
:Y-1
Y
If Z=34
:Y+1
Y
:Goto 1
Quelqu'un se rejouissant trop vite: Yahoo !! ca marche !! euh... hep si on sort de l'écran y'a un pti problème.
ERR:DOMAIN
La calculatrice va bien je vous rassure, inutile de la balancer par la fenêtre. Et maintenant si vous voulez comprendre et aller plus loin voyez donc le TP du programme CHERCHE
Remonter en haut - CSS 2.0
total: