XLOGO peut interagir avec l’utilisateur pendant l’exécution d’un programme par l’intermédiaire du clavier et de la souris.
|
Si vous avez un doute par le mot retourné par une touche, il vous suffit de taper :
ec liscar. L’interpréteur va alors attendre que vous tapiez sur une touche puis vous donnera la valeur
correspondante.
pour yeuv
lis [Quel est ton age?] "age
donne "age :age
si :age<18 [ec [tu es mineur]]
si ou :age=18 :age>18 [ec [tu es majeur]]
si :age>99 [ec [Respect !!]]
fin
pour rallye
si touche? [
donne "car liscar
si :car=-37 [tg 90]
si :car=-39 [td 90]
si :car=-38 [av 10]
si :car=-40 [re 10]
si :car=27 [stop]
]
rallye
fin
# On contrôle la tortue avec le clavier, on arrête avec Esc
|
Les boutons sont numérotés de la gauche vers la droite (en principe...)
pour exemple
# Si on déplace la souris, se positionner à la nouvelle position
si lissouris=0 [fpos possouris]
exemple
fin
|
Dans cette deuxième procédure, c’est le même principe sauf qu’il faut cliquer avec le bouton gauche de la souris pour provoquer le déplacement de la tortue sur la zone de dessin.
pour exemple2 si lissouris=1 [fpos possouris] exemple2 fin |
Dans ce troisième exemple, nous allons créer deux boutons. Celui de gauche permettra de tracer un carré de 40 sur 40 vers la droite, celui de droite un petit cercle vers la gauche. Enfin, si l’on clique avec le troisième bouton de la souris sur le bouton de droite, cela provoquera l’arrêt du programme.
pour bouton
#crée un bouton rectangulaire de 50 sur 100 colorié en saumon
repete 2[av 50 td 90 av 100 td 90]
td 45 lc av 10 bc fcc [255 153 153]
remplis re 10 tg 45 bc fcc 0
fin
pour lance
ve bouton lc fpos [150 0] bc bouton
lc fpos [30 20] bc etiquette "Carré
lc fpos [180 20] bc etiquette "Cercle
lc fpos [0 -100] bc
souris
fin
pour souris
# On enregistre le résultat de lissouris dans la variable ev
donne "ev lissouris
# On enregistre la première coordonnée de la souris dans la variable x
donne "x item 1 possouris
# On enregistre la première coordonnée de la souris dans la variable y
donne "y item 2 possouris
# Si l’on clique sur le bouton de gauche
si :ev=1 & :x>0 & :x<100 & :y>0 & :y<50 [carre]
# Si l’on clique sur le bouton de droite
si :x>150 & :x<250 & :y>0 & :y<50 [
si :ev=1 [cercle]
si :ev=3 [stop]
]
souris
fin
pour cercle
repete 90 [av 1 tg 4] tg 90 lc av 40 td 90 bc
fin
pour carre
repete 4 [av 40 td 90] td 90 av 40 tg 90
fin
|
guiposition "b [20 100]
|
Si la position du composant n’est pas précisée, le composant est placé par défaut au coin supérieur gauche
de la zone de dessin.
guienleve "b |
# La tortue avance de 100 pas si l’on clique sur le bouton "b guiaction "b [av 100 ] # Pour le menu déroulant, chaque item possède sa propre action guiaction "m [[ecris "item1] [ecris "item2] [ecris "item3]] |
guidessine "b |