[Tutoriel]Gestion des touches + effacer l'écran
3 participants
Page 1 sur 1
[Tutoriel]Gestion des touches + effacer l'écran
Bon, j'ai totalement zappé de vous parler des commandes qui effacent l'écran, je vais donc commencer par ça :
Mise à jour (merci à J8B pour la correction) :
-CLEAR c'est pour effacer la mémoire donc mettre vos variables à 0.
-CLS efface l'écran du texte.
-GCLS efface l'écran graphique.
-SPCLR efface les sprites à l'écran.
-BGCLR efface le background.
-ACLS (probablement traduisible par "Clear All"), qui efface l'écran du texte, l'écran graphique, le background et les sprites. Elle est la combinaison des 4 commandes au dessus.
Sur ce, passons maintenant à la gestion des touches :
Mise à jour (merci à J8B pour la correction) :
La commande pour avoir les touches s'appelle BUTTON()
elle possède 4 modes allant de 0 à 3, par défaut c'est le mode 0 qui est employé, car BUTTON() = BUTTON(0)
les 4 modes sont les suivants : Tenu ; Répété ; Appuyé ; Relâché.
-BUTTON() renvoie la valeur des touches appuyées au moment où la fonction est appelée.
-BREPEAT permet d'activer BUTTON(1) (bouton répété, un mode turbo si vous préférez).
-BTRIG() correspond à BUTTON(2) et renvoie quelle touche vient d'être appuyée (s'il y en a une) sur le moment de l'appel de cette fonction.
-Quant à BUTTON(3), il fait la même chose que pour BUTTON(2) (ou BTRIG() ) sauf qu'il renvoie les boutons venant d'être relâchés.
Si on appuie sur plusieurs touches en même temps, les valeurs des touches s'additionnent, et le système est fait de telle sorte que chaque touche peut être comparée à une valeur binaire, la touche B équivaut à 32, donc 100000 en binaire ; A équivaut à 16, donc 010000 ; la touche droite équivaut à 8, donc 001000, et si on appuie sur les trois en même temps on obtient 56, donc 111000 en binaire.
Vu que ces commandes sont en fait des variables système, il est possible de s'en servir comme tout autres variables, exemples :
Cliquez ici pour aller vers la page de l'utilitaire
N'hésitez pas à lire le code de mon utilitaire afin de vous aider à décortiquer les touches appuyées par l'utilisateur, vous pouvez même le recopier si l'envie vous prend !
Mise à jour (merci à J8B pour la correction) :
-CLEAR c'est pour effacer la mémoire donc mettre vos variables à 0.
-CLS efface l'écran du texte.
-GCLS efface l'écran graphique.
-SPCLR efface les sprites à l'écran.
-BGCLR efface le background.
-ACLS (probablement traduisible par "Clear All"), qui efface l'écran du texte, l'écran graphique, le background et les sprites. Elle est la combinaison des 4 commandes au dessus.
- Ancien tuto (peut comporter des erreurs):
- CLEAR/CLS permettent d'effacer le texte en général, GCLS permet d'effacer l'écran graphique (on en parlera plus tard, quand j'aurai appris à m'en servir), tandis que SPCLR permet de retirer tout les sprites présents à l'écran.
Sur ce, passons maintenant à la gestion des touches :
Mise à jour (merci à J8B pour la correction) :
La commande pour avoir les touches s'appelle BUTTON()
elle possède 4 modes allant de 0 à 3, par défaut c'est le mode 0 qui est employé, car BUTTON() = BUTTON(0)
les 4 modes sont les suivants : Tenu ; Répété ; Appuyé ; Relâché.
-BUTTON() renvoie la valeur des touches appuyées au moment où la fonction est appelée.
-BREPEAT permet d'activer BUTTON(1) (bouton répété, un mode turbo si vous préférez).
-BTRIG() correspond à BUTTON(2) et renvoie quelle touche vient d'être appuyée (s'il y en a une) sur le moment de l'appel de cette fonction.
-Quant à BUTTON(3), il fait la même chose que pour BUTTON(2) (ou BTRIG() ) sauf qu'il renvoie les boutons venant d'être relâchés.
- Ancien tuto (peut comporter des erreurs):
- Il y a deux commandes permettant de détecter quelle touche est appuyée.
Enfin, ce n'est pas des commandes, c'est plus des variables systèmes.
Commençons par le moins utilisé des deux : BTRIG() (ne jamais oublier de mettre des parenthèses après)
Quand on appuie sur une touche, BTRIG prend la valeur de celle-ci et se remet à 0 peu après.
Parlons maintenant de la seconde variable système : BUTTON(), qui est bien plus utilisée et vous comprendre très vite pourquoi :
Cette variable contient constamment la valeur des touches appuyées, au contraire de BTRIG qui ne la retient que quelques secondes (je vous le dis encore, testez la différence entre les deux et vous comprendrez).
Si on appuie sur plusieurs touches en même temps, les valeurs des touches s'additionnent, et le système est fait de telle sorte que chaque touche peut être comparée à une valeur binaire, la touche B équivaut à 32, donc 100000 en binaire ; A équivaut à 16, donc 010000 ; la touche droite équivaut à 8, donc 001000, et si on appuie sur les trois en même temps on obtient 56, donc 111000 en binaire.
Vu que ces commandes sont en fait des variables système, il est possible de s'en servir comme tout autres variables, exemples :
- Code:
IF BUTTON()==16 THEN GOSUB @SAUT
G=BUTTON()
Cliquez ici pour aller vers la page de l'utilitaire
N'hésitez pas à lire le code de mon utilitaire afin de vous aider à décortiquer les touches appuyées par l'utilisateur, vous pouvez même le recopier si l'envie vous prend !
Dernière édition par RayTro le Mar 12 Aoû - 19:54, édité 1 fois
Re: [Tutoriel]Gestion des touches + effacer l'écran
Mais le BUTTON() ne posent il pas des problemes d'identification ?
Par exemple si presse deux fois A, le BUTTON ne lira il pas A,B ?
Par exemple si presse deux fois A, le BUTTON ne lira il pas A,B ?
Invité- Invité
Re: [Tutoriel]Gestion des touches + effacer l'écran
J'ai pas tellement compris ce que tu voulais dire mais il contient constamment quelle touche est appuyée. Quand tu lis la variable il te donne les touches appuyées à l'instant où elle est demandée. Si tu veux détecter l'appui répétée de touches il faudra que tu codes toi même.
Re: [Tutoriel]Gestion des touches + effacer l'écran
- Code:
clear:cls
@boucle
wait 1
if button() and 16 and app==0 then a=a+1:att=20:app=1
if button() ==0 then app==0
att=att -1
if att==0 then a=0
if att==-1 then att=0
goto @boucle
Dernière édition par Adriendu92 le Mar 12 Aoû - 18:53, édité 1 fois
Re: [Tutoriel]Gestion des touches + effacer l'écran
En fait ce tutoriel mérite bien d'avoir un petit coup de balai. Il est plutôt vieux et pas complet.
CLEAR c'est pour effacer la mémoire donc mettre vos variables à 0.
Il faudrait rajouter ACLS qui efface l'écran du texte, de l'écran graphique, des sprites et du background. Il est donc la combinaison de CLS:GCLS:SPCLR:BGCLR.
Tiens BGCLR est à rajouter aussi (efface le background, le décor si vous préférez).
BUTTON() possède 4 modes allant de 0 à 3. (tenu,répété,appuyé,relâché).
BUTTON() correspond à BUTTON(0). (bouton tenu ou laissez appuyé)
BTRIG() est la même chose que BUTTON(2). (bouton appuyé).
On pourrait aussi rajouter BREPEAT qui permet d'activer BUTTON(1) (bouton répété, un mode turbo si vous préférez).
Référez vous à mon utilitaire d'aide en même temps que vous regardez les tuto, ça peut vous aider si vous avez du mal à comprendre certaine chose.
CLEAR c'est pour effacer la mémoire donc mettre vos variables à 0.
Il faudrait rajouter ACLS qui efface l'écran du texte, de l'écran graphique, des sprites et du background. Il est donc la combinaison de CLS:GCLS:SPCLR:BGCLR.
Tiens BGCLR est à rajouter aussi (efface le background, le décor si vous préférez).
BUTTON() possède 4 modes allant de 0 à 3. (tenu,répété,appuyé,relâché).
BUTTON() correspond à BUTTON(0). (bouton tenu ou laissez appuyé)
BTRIG() est la même chose que BUTTON(2). (bouton appuyé).
On pourrait aussi rajouter BREPEAT qui permet d'activer BUTTON(1) (bouton répété, un mode turbo si vous préférez).
Référez vous à mon utilitaire d'aide en même temps que vous regardez les tuto, ça peut vous aider si vous avez du mal à comprendre certaine chose.
Attention t'as mis == au lieu de =. Corrige aussi la majuscule.Adriendu92 a écrit:
If button() ==0 then app==0
Att ==att -1
Re: [Tutoriel]Gestion des touches + effacer l'écran
Voilà, j'ai modifié vite-fait le tuto, j'espère ne pas avoir laissé trainer d'autres erreurs.
Re: [Tutoriel]Gestion des touches + effacer l'écran
Pour ma part, j'ai compris ce sur quoi je bloquai...
Invité- Invité
Sujets similaires
» [Tutoriel]DATA
» [Tutoriel] Sprites
» [Tutoriel]Les conditions + FOR
» [Tutoriel] La fonction RND().
» [Tutoriel][Code] La fonction Dim
» [Tutoriel] Sprites
» [Tutoriel]Les conditions + FOR
» [Tutoriel] La fonction RND().
» [Tutoriel][Code] La fonction Dim
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum