Durante la ejecución del programa, se puede recibir texto ingresado por el usuario a través de 3 primitivas: tecla?, leecar y leelista.
A 65 | B 66 | C 67 | ... | Z 90 |
-37 ó -226 | -38 ó -224 | -39 ó -227 | -40 ó -225 | |
Esc 27 | F1 -112 | F2 -113 | ... | F12 -123 |
SHIFT -16 | ESPACIO 32 | CTRL -17 | ENTER 10 |
Las primitivas caracter, (su forma
corta es car y cuyo argumento es n: un número) y unicode "a
, devuelven,
respectivamente, el carácter unicode que corresponde al número n
y el número unicode que corresponde al carácter a.
Ejemplo:
unicode "A devuelve 65 caracter 125 devuelve }
Ejemplos:
para edades
leelista
[¿Qué edad tienes?] "edad
si :edad < 18 [escribe [Eres menor]]
si :edad > 17 [escribe [Eres adulto]]
si :edad > 69 [escribe [Con todo respeto!!]]
fin
para dibujar
# La tortuga es controlada con las flechas del teclado.
# Se termina con Esc.
si tecla?
[ haz "valor leecar
si :valor=-37 [giraizquierda 90]
si :valor=-39 [giraderecha 90]
si :valor=-38 [avanza 10]
si :valor=-40 [retrocede 10]
si :valor=27 [alto] ]
dibujar
fin
Durante la ejecución del programa, se pueden recibir eventos del ratón a través de tres primitivas: leeratón, ratón? y posratón.
Ejemplos:
En este primer procedimiento, la tortuga sigue los movimientos del ratón por
la pantalla.
para seguir
# cuando el ratón se mueve, la tortuga cambia de posición
si leeratón=0 [ponposición posratón]
seguir
fin
Este segundo procedimiento es similar, pero hay que hacer click
izquierdo para que la tortuga se mueva.:
para seguir2
si leeratón = 1 [ponposición posratón]
seguir2
fin
En este tercer ejemplo, hemos creado dos botones rosa. Si hacemos click izquierdo, la tortuga dibuja un cuadrado de lado 40. Si hacemos click derecho, la tortuga dibuja un pequeño círculo. Por último si hacemos click derecho en el botón derecho, se detiene el programa.
para botón
# crea un botón rectangular color rosa, de 50 x 100
repite 2 [
avanza 50 giraderecha 90 avanza 100 giraderecha 90 ]
giraderecha 45 subelapiz avanza 10
bajalápiz poncolorlápiz [255 153 153]
rellena retrocede 10 giraizquierda 45 bajalápiz poncolorlápiz 0
fin
para empieza
borrapantalla botón subelápiz ponposición [150 0]
bajalápiz botón subelápiz ponposición [30 20] bajalápiz
rotula "Cuadrado subelápiz ponposición [180 20]
bajalápiz rotula "Círculo
subelápiz ponposición [0 -100] bajalápiz
ratón
fin
para ratón
# ponemos el valor de leeratón en la variable ev
# ponemos la primera coordenada en la variable x
# ponemos la segunda coordenada en la variable y
haz "ev leeratón
haz "x elemento 1 posratón
haz "y elemento 2 posratón
# si hay click izquierdo
si :ev=1 & :x>0 & :x<100 & :y>0 & :y<50 [cuadrado]
# si hay click derecho
si :x>150 & :x<250 & :y>0 & :y<50 [
si :ev=1 [circunferencia]
si :ev=3 [alto] ]
ratón
fin
para circunferencia
repite 90 [avanza 1 giraizquierda 4]
giraizquierda 90 subelápiz avanza 40 giraderecha 90 bajalápiz
fin
para cuadrado
repite 4 [avanza 40 giraderecha 90]
giraderecha 90 avanza 40 giraizquierda 90
fin
Desde la versión 0.9.90, XLogo permite añadir componentes gráficos en el
Área de dibujo (botones, menús, ...)
Las primitivas que permiten crear y modificar estos componentes terminan con el sufijo igu (Interfaz Gráfica de Usuario - Graphical User Interface, gui son sus siglas inglesas).
La secuencia de pasos que debes seguir es: Crear Modificar sus propiedades o características Mostrarlo en el Área de dibujo.
Usaremos al primitiva botonigu, cuya sintaxis es:
# Esta primitiva crea un botón llamado b
# y cuya leyenda es: Click
botonigu "b "Click
Disponemos de la primitiva menuigu, cuya sintaxis es:
# Esta primitiva crea un menú llamado m
# y que contiene 3 opciones: opción1, opción2 y opción3
menuigu "m [opción1 opción2 opción3]
posicionigu determina las coordenadas donde se colocará el elemento gráfico. Por ejemplo, para colocar el botón definido antes en el punto de coordenadas (20 , 100), escribiremos:
posicionigu "b [20 100]
Si no se especifica la posición, el objeto será colocado por defecto en la esquina superior izquierda del Área de dibujo.
La primitiva eliminaigu elimina un componente gráfico. Para eliminar el botón anterior
eliminaigu "b
La primitiva accionigu,
define una acción asociada al componente, y que se realizará cuando el
usuario interactúa con él.
# Que la tortuga avance 100 al pulsar el boton "b
accionigu "b [avanza 100 ]
# En el menú, cada opción indica su acción
accionigu "m [[escribe "Opción1] [escribe "Opción2] [escribe "Opción3]]
La primitiva dibujaigu, muestra el componente gráfico en el Área de dibujo. Para mostrar el botón que estamos usando como ejemplo:
dibujaigu "b
Corrijamos el ejemplo anterior utilizando las nuevas primitivas:
para empieza
botonigu "Boton.Circ "Círculo
botonigu "Boton.Cuad "Cuadrado
posicionigu "Boton.Circ [50 100]
posicionigu "Boton.Cuad [-150 100]
accionigu "Boton.Circ [ circunferencia ]
accionigu "Boton.Cuad [ cuadrados ]
dibujaigu "Boton.Circ
dibujaigu "Boton.Cuad
fin
para circunferencia
repite 90 [av 1 gi 4]
giraizquierda 90 subelápiz avanza 40 giraderecha 90 bajalápiz
fin
para cuadrado
repite 4 [avanza 40 giraderecha 90]
giraderecha 90 avanza 40 giraizquierda 90
fin