Introducción a Lingo. Estructuras de control If y Case

13 de noviembre de 2007
Valoración del artículo:
El control de las estructuras como if y case que vamos a ver en éste capítulo de Macromedia Director nos permite modificar el flujo de un programa.
Atención: Contenido exclusivo de DesarrolloMultimedia.es. No reproducir. Copyright.

Hasta ahora, el flujo de un programa empezaba en la parte superior del mismo y avanzaba linealmente hasta la inferior. Por medio de estructuras de control podemos modificar este flujo de ejecución.

Estructuras if.

Por medio de estas estructuras podemos modificar el flujo de ejecución basándonos en una serie de condiciones. Las diferentes formas que puede presentar son las siguientes:

If condicion then
sentencias
end if

If condicion then
sentencias
else
sentencias
end if

If condicion then
sentencias
else if condicion then
sentencias
end if


Declaraciones case.

Al igual que las sentencias if .. else, nos permite tomar decisiones lógicas mientras ejecutamos una serie de condiciones. La sintaxis de este tipo de declaración es la que se muestra a continuación:

case (expression) of
valor_expresion1:
sentencias1
valor_expresion2:
sentencias2
............
valor_expresionn:
sentenciasn
end case

case (expression) of
valor_expresion1:
sentencias1
valor_expresion2:
sentencias2
............
valor_expresionn:
sentenciasn
otherwise
sentencias
end case


Vamos a ver un ejemplo: Supongamos que queremos mover la imagen que aparece en la figura siguiente mediante la pulsación de las teclas siguientes: J (izquierda), K (derecha), U (arriba) y N (abajo).

Imagen estática del balón


Para ello utilizamos el evento KeyDown que se dispara cada vez que pulsamos una tecla. La solución utilizando estructuras if podría ser la siguiente:

if the key = "J" then
set h = the locH of sprite 1
set the locH of sprite 1 to H -10´
updatestage

else if the key = "K" then
set h = the locH of sprite 1
set the locH of sprite 1 to H +10
updatestage

else if the key = "U" then
set V = the locV of sprite 1
set the locV of sprite 1 to V -10
updatestage

else if the key = "N" then
set V = the locV of sprite 1
set the locV of sprite 1 to V +10
updatestage

end if


La solución utilizando estructuras case podría ser la siguiente:

case the key of
"J":set h = the locH of sprite 1 set the locH of sprite 1 to H -10 updatestage
"K":set h = the locH of sprite 1 set the locH of sprite 1 to H +10 updatestage
"U":set V = the locV of sprite 1 set the locV of sprite 1 to V -10 updatestage
"N":set V = the locV of sprite 1 set the locV of sprite 1 to V +10 updatestage
otherwise:put “No has pulsado una tecla correcta) into mensaje updatestage end case


Comentarios

Los comentarios de los visitantes son para ampliar la
información del artículo. Cualquiera puede participar.

Añadir un comentario al artículo Publicar un comentario del artículo

Se muestra un comentario revisado

 pregunta
09/10/08 

Comentario de jose castillo:

trato de ejcutar el codigo presentado con el balon, me manda un mensaje de error respecto a la definicion de la variable J, como puedo hacer para corregir este error, agradeceria me respondieran esta inquietud...

Desarrollo Multimedia:

No debes tener definida la variable J. Prueba esto:

Global J




El autor
Juan Ignacio Rodríguez Navarro
Equipo de desarrollomultimedia.es
Manuales
Categorías

Donaciones
Si piensas que te hemos ayudado y merecemos tu apoyo económico...

Un lugar donde se muestran las creaciones de los visitantes de DesarrolloMultimedia.es