En esta semana vamos a aprender a jugar con funciones echas por otro. Para que sea mas divertido usamos funciones con imágenes que agrupamos todas en un archivo. Si las funciones de otro estan en un archivo que se llama por ejemplo nahual.rb entonces lo unico que tenemos que poner es:
require 'nahual'
Para crear una pantalla de 640×480 pixeles (vacia por ahora) tenemos que hacer lo siguiente:
pantalla = crearPantalla(640,480) while true evento = obtenerEvento() if ( evento == 0 ) cerrarPantalla() end limpiarPantalla(pantalla) redibujarPantalla(pantalla) end
el ciclo con el while true es el lazo del juego o game loop . Cada ratito se van a volver a ejecutar las funciones de redibujar y asi vamos a lograr el efecto película y darle movimiento a nuestras imágenes.
Los sprites
Un sprite es una imagen que queremos poner en la pantalla y moverla. Puede representar los jugadores de futbol en los jueguitos, etc. Para crear un sprite tenemos que hacer
sprite = crearSprite("bernard2.png")
y después en el game loop tenemos que dibujarlo distinto. Por ejemplo si apretan la letra ‘h’ hacemos que se mueva por la pantalla. Fijense, que “bernard2.png” es el nombre del archivo con la imagen que queremos usar. Podemos hacer la imagen que nosotros queramos usando el paint!
if ( evento == 'h' ) #sprite.moverA(10,10) if ( sprite.y < 200 ) sprite.mover(0,10) else sprite.mover(10,0) end if ( sprite.x > 600 ) sprite.moverA(50,50) end end
Para ver si apretaron una tecla o o si hicieron click en el mouse tenemos la funcion obtener evento, la podemos usar de la siguiente manera:
evento = obtenerEvento()
if ( evento = 'a' )
puts 'apretaron la a'
end
Si el evento es 0 (el numero 0) entonces hay que salir y si es 1 es que fue un click del mouse.
Con estas sencillas funciones podemos hacer nuestro juego de jugar a la mancha.
Jugando a la mancha
- Crea un juego vacio que solo muestre la pantalla vacia.
- Crea 2 sprites uno con una imagen y otro con otra y ubicalos en uno en la posicion 10,10 y el otro en la 600,400.
- Hace 4 funciones que se llamen mover_arriba, mover_abajo, mover_izquierda, mover_derecha que muevan 5 pixeles al sprite.
- Elegi 4 teclas (una para cada direccion) y hace una funcion que, a partir del evento, tome una decision con el sprite.
- Hace otra funcion que se llame mancha? para ver si un sprite toco al otro.
- Juga!!!!