next up previous contents index
Siguiente: Gestión de tiempos Subir: Manual del Usuario Anterior: Tocar música (MIDI)   Índice General   Índice de Materias

Subsecciones


Recibir entrada del usuario


Interactuar con el teclado

Durante la ejecución del programa, se puede recibir texto ingresado por el usuario a través de 3 primitivas: tecla?, leecar y leelista.

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


Interactuar con el ratón

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.

Image CtrlRaton

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

Componentes Gráficos

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).

Crear un componente gráfico

La secuencia de pasos que debes seguir es: Crear Modificar sus propiedades o características Mostrarlo en el Área de dibujo.

Crear un Botón

Usaremos al primitiva botonigu, cuya sintaxis es:

# Esta primitiva crea un botón llamado b

# y cuya leyenda es: Click

botonigu "b "Click

Crear un Menú

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]

Modificar las propiedades del componente gráfico

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.

Eliminar un componente gráfico

La primitiva eliminaigu elimina un componente gráfico. Para eliminar el botón anterior

eliminaigu "b

Definir acciones asociadas a un componente gráfico

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]]

Dibujar el componente gráfico

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
Image EjemplosIGU_01 Image EjemplosIGU_02

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

Image EjemplosIGU_03


next up previous contents index
Siguiente: Gestión de tiempos Subir: Manual del Usuario Anterior: Tocar música (MIDI)   Índice General   Índice de Materias
Álvaro Valdés 2008-03-13