Vous vous demandez comment faire pour commencer une action à la détection d'une touche. Vous êtes sur le bon chapitre de ce tutorial. En effet, vous allez apprendre à vous servir des mots clé CHR$, INKEY$...
Tout d'abord, il faut savoir comment Q-Basic fait pour afficher un caractère à l'écran. Quand vous appuyé sur une touche, voici ce qu'il ce passe : le clavier renvoi un chiffre. Ce chiffre c'est le code ASCII (prononcé Aski), il correspond à un symbole. Par exemple le chiffre 65, représente le caractère A.
Vous trouverez la liste de tous les caractères ASCII dans l'aide de Q-Basic.
Vous allez maintenant écrire un programme qui ne sert à rien sinon à vous faire employer la commande CHR$. En effet, ce mot clé permet d'afficher le caractère que vous souhaitez mais de l'appeler par son chiffre ASCII. Par exemple : CHR$(65) affiche le caractère A. Essayer ce programme :
REM programme 71
REM affiche le caractère qui corresponds à son chiffre ASCII
CLS
PRINT CHR$(201) ; CHR$(205) ; CHR$(205) ; CHR$(187)
PRINT CHR$(186) ; "QB" ; CHR$(186)
PRINT CHR$(200) ; CHR$(205) ; CHR$(205) ; CHR$(188)
END
Pressez F5
C'est pas mal non ? Vous pouvez ainsi insérer des effets graphiques tout en restant en mode texte.
Maintenant, vous allez utiliser le mot clé INKEY$, cette commande lit un caractère entré au clavier. Nous allons l'utiliser pour l'arrêt d'une boucle avec ESC
REM programme 72
REM ferme une boucle avec INKEY$
DIM nombre AS LONG
nombre = 0
CLS
DO
PRINT nombre
nombre = nombre + 1
LOOP UNTIL INKEY$ = CHR$(27)
END
Pressez F5
Ce programme ajoute 1 à chaque passage de la boucle. Pour l'arrêt de la boucle on dit à Q-Basic d'exécuter la boucle jusqu'à ce que le caractère lut par INKEY$ soit celui du caractère qui possède 27 comme chiffre ASCII, en l'occurrence, il s'agit de la touche ESC.
Vous allez maintenant quelque chose de plus utile et qui vous donnera sûrement une idée de ... jeu. En effet, nous allons réaliser une sorte de ver de terre qui voyage dans l'écran. Essayer plutôt ce programme :
REM programme 73
REM un petit vers de terre
DIM x AS LONG
DIM y AS LONG
CLS
SCREEN 7
x = 50
y = 110
DO
PRESET (x, y) , 4
IF INKEY$ = "8" THEN y = y - 1
IF INKEY$ = "2" THEN y = y + 1
IF INKEY$ = "4" THEN x = x - 1
IF INKEY$ = "6" THEN x = x + 1
LOOP UNTIL INKEY$ = CHR$(27)
END
Pressez F5
Vous ne trouvez pas qu'il sera plus intéressant d'utiliser les flèche de direction plutôt que les chiffres du pavé numérique. Si ! eh bien, c'est ce que nous allons faire. Vous devez d'abord savoir, que pour chacune de ces touche deux chiffre ASCII sont utilisé. Voilà ce que donnerai le programme.
REM programme 74
REM un petit ver de terre
DIM x AS LONG
DIM y AS LONG
DIM FLECHEHAUT AS STRING
DIM FLECHEBAS AS STRING
DIM FLECHEGAUCHE AS STRING
DIM FLECHEDROITE AS STRING
FLECHEHAUT = CHR$(0) + CHR$(72)
FLECHEBAS = CHR$(0) + CHR$(80)
FLECHEGAUCHE = CHR$(0) + CHR$(75)
FLECHEDROITE = CHR$(0) + CHR$(77)
CLS
SCREEN 7
x = 50
y = 110
DO
PRESET (x, y), 4
IF INKEY$ = FLECHEHAUT THEN y = y - 1
IF INKEY$ = FLECHEBAS THEN y = y + 1
IF INKEY$ = FLECHEGAUCHE THEN x = x - 1
IF INKEY$ = FLECHEDROITE THEN x = x + 1
LOOP UNTIL INKEY$ = CHR$(27)
END
Pressez F5 c'est mieux n'est pas ?