ACTIVAR EL GIF ANIMADO: EL OVNI GIRA SOBRE SI MISMO

 

También podemos definir una variable que permita guardar varios valores de un determinado tipo al mismo tiempo, es como un casillero en el que cada casilla guarda un valor en un instante dado. 

Program Ovni

               Method cargarOvni()

                               LoadSprite("OVNI", "OVNI.gif")

                               MoveSpriteToPoint("OVNI", 50, 50)

                               ShowSprite("OVNI")

               End Method

               Method Main()

                               cargarOvni()

                               Define TiempoImagen As Int[6] = {40, 40, 40, 40, 40, 40}

                               SetSpriteAnimationTimeline("OVNI", True, TiempoImagen)

                               Loop 400

                                              MoveSpriteBy("OVNI", 1, 0)

                                              Delay(10)

                               End Loop

               End Method

End Program

 

En este programa la instrucción Define TiempoImagen As Int[6] = {40, 40, 40, 40, 40, 40} define la variable llamada TiempoImagen que almacena seis valores enteros, uno en cada una de sus casillas. Para asignar un valor diferente a 40 en alguna de las posiciones del casillero, por ejemplo asignar 100 en la primera posición, damos la instrucción TiempoImagen[1] = 100.

 

Recuerde que el archivo OVNI.gif tiene seis imágenes, cada una con el ovni en una posición diferente. Si pasamos estas seis imágenes en secuencia a la velocidad apropiada, tendremos animación del ovni girando. El método SetSpriteAnimationTimeline("OVNI", True, LineaTiempo)hace girar al ovni, pasando la secuencia de las seis imágenes y mostrando cada imágen el tiempo en milisegundos dado en la variable LineaTiempo. El primer valor de esta variable define la cantidad de tiempo en milisegundos que se muestra la primera imagen, el segundo valor define la cantidad de tiempo en milisegundos que muestra la segunda imagen, etc. En este caso definimos 40 milisegundos para cada una de las imágenes, lo que quiere decir que muestra las 6 imágenes en 240 milisegundos. La palabra True le dice al computador que repita todo el tiempo esta animación mientras dura la ejecución del programa. Si colocamos False en lugar de True, el computador ejecuta la animación de giro solo una vez. Este programa nos muestra dos animaciones, una en el movimiento rectilíneo y otra en el giro del ovni alrededor de un eje vertical que pasa por su centro.   

 

MOVER   EL   OVNI   CON   LAS   TECLAS   DE   FLECHA   

Program Ovni

                Define posX As Int = 50

                Define posY As Int = 50

                Define incX As Int = 1

                Define incY As Int = 1

                Method cargarOvni()

                               LoadSprite("OVNI", "OVNI.gif")

                               MoveSpriteToPoint("OVNI", posX, posY)

                               Define TiempoImagen As Int[6] = {40, 40, 40, 40, 40, 40}

                               SetSpriteAnimationTimeline("OVNI", True, TiempoImagen)

                               ShowSprite("OVNI")

                End Method

                Method tecla()

                               If IsKeyDown("UP") And posY > 0Then

                                               posY = posY - incY

                               End If

                               If IsKeyDown("Down") And posy < ScreenHeight() - GetSpriteHeight("OVNI") Then

                                               posY = posY + incY                          

                               End If

                               If IsKeyDown("Right") And  posX < ScreenWidth() - GetSpriteWidth("OVNI") Then

                                               posX = posX + incX                         

                               End If

                               If IsKeyDown("Left") And posX > 0 Then

                                               posX = posX - incX

                               End If

                               MoveSpriteToPoint("OVNI", posX, posY)

                End Method

                Method Main()

                               cargarOvni()

                               Loop 10000

                                               tecla()

                                               Delay(10)

                               End Loop 

                End Method

End Program

Las variables definidas al comienzo del programa pueden ser utilizadas por cualquiera de los métodos, por eso se llaman variables globales; por el contrario, las variables definidas dentro de un método son llamadas variables locales, pues solo se pueden utilizar dentro del método. Este programa define cuatro variables globales que pueden ser utilizadas por cualquiera de los métodos del programa.   

 

El programa permite mover el ovni con las teclas de fecha sin salirse de la pantalla utilizando la instrucción condicional If. El método tecla( ) valida si la tecla oprimida es flecha hacia arriba y si la posición en Y es mayor que cero, si estas dos condiciones se cumplen disminuye la posición en Y en el valor que tenga la variable incY. Luego valida si la tecla que se oprimió es flecha hacia abajo y si la posición en Y es menor que el alto de la pantalla menos el alto del ovni, si estas dos condiciones se cumplen incrementa la posición en Y en el valor que tenga la variable incY. Luego valida si la tecla oprimida es flecha derecha y la posición en X es menor que el ancho de la pantalla menos el ancho del ovni, si estas dos condiciones se cumplen incrementa la posición en X en el valor que tenga la variable incX. Luego valida si tecla oprimida es flecha izquierda y la posición en X es mayor que cero, si las dos condiciones se cumplen disminuye la posición X en el valor que tenga la variable incX. Por último, mueve el ovni a la posición actualizada.     

 

El método Main( ) invoca el método cargarOvni( ) y luego entra en un ciclo repetitivo con dos instrucciones: invocar el método tecla( ) que valida la tecla digitada y detener el programa 10 milisegundos. El computador tarda alrededor de 3 minutos en ejecutar estas dos instrucciones 10000 veces, esto permite mover el ovni durante este lapso de tiempo. Puede cambiar los valores de incX, incY, el número de repeticiones y la cantidad de milisegundos que el computador se detiene en cada repetición. Cambie un parámetro a la vez, ejecute el programa y observe el cambio.  

 

<< Anterior