Para finalizar este tutorial, vamos a detectar que el pajaro "choca" con los rectangulos, y añadiremos la puntuación.
En el love.load() añadiremos lo siguiente:
puntuacion = 0
puntoSumado = false
puntoSumado lo utilizaremos para controlar que puntuación no se suma varias veces...
Ahora en el love.update() añadimos lo siguiente:
if (pajaro.x > tubo.x) and (pajaro.x < tubo.x + tubo.ancho) then
if ((pajaro.y - pajaro.radio) < (tubo.y + tubo.alto)) or ((pajaro.y + pajaro.radio) > (tubo.y + tubo.alto + 100)) then
tubo.r , tubo.g , tubo.b = 0 , 0 , 255 -- Color azul
elseif not puntoSumado then
puntuacion = puntuacion + 1
puntoSumado = true
end
else
tubo.r , tubo.g , tubo.b = 0 , 255 , 0
puntoSumado = false
end
En la primera linea detectamos si el pajaro está entre los tubos (chocando o no), significa, si la posición del pajaro es mayor a la del tubo y la posicion del pajaro es menor a la del tubo mas su ancho.
En la segunda linea detectamos si el pajaro está en el area del primer rectangulo o en el area del segundo rectangulo, significa, si la posicion del pajaro menos su radio es menor a la posicion del tubo mas su alto o si la posicion del pajaro mas su radio es mayor a la del tubo mas su alto mas 100 pixeles...
Si estas condiciones se cumplen, cambiaremos el color del tubo a azul.
Ahora analizaremos la línea del elseif:
Esta línea en adelante lo que significa es, además si puntoSumado no es verdadero (not invierte el booleano) entonces sumamos puntuacion mas 1 y cambiamos puntoSumado a verdadero,
En el else:
En else colocamos el codigo que se ejecuta si no se cumple ninguna condición, una vez que el pajaro sale de la zona del tubo (la primera condición) pasaremos el color del tubo a verde otra vez, y puntoSumado a false.
Es importante mantener la identación correcta en el proyecto, ese espacio que dejamos con Tab para indicar a qué pertenece cada linea de código. Te dejo el link de Wikipedia sobre Identación: Identación
Por ultimo en love.draw() colocamos el código para imprimir nuestra puntuación:
-- Imprimimos en pantalla la puntuacion
love.graphics.setColor(255 , 255 , 0) -- Color amarillo.
love.graphics.print("Puntuación: " .. puntuacion, 32 , 32)
Y ya tenemos listo nuestro juego básico de Flappy Bird.
Te dejaré el link del proyecto para que puedas descargarlo y verlo en tu PC.
https://github.com/DeybisMelendez/Love2DBlog/tree/master/flappyBird
¡Bienvenido! Si deseas aprender a crear juegos con Love2D y no encuentras documentación en español, este es tu blog, puedes comenzar en Guía inicial o si ya conoces lo mas básico de Love2D y Lua puedes ver los tutoriales.
Suscribirse a:
Enviar comentarios (Atom)
Como hacer un Snake en Love2D
Archivos Comenzamos creando los archivos main.lua y conf.lua, en el conf.lua solo añadimos lo siguiente: function love.conf(t) t.win...
-
Assets: Primero descargaremos los siguientes assets para este proyecto https://opengameart.org/content/pong-programmer-art https://...
-
Archivos Comenzamos creando los archivos main.lua y conf.lua, en el conf.lua solo añadimos lo siguiente: function love.conf(t) t.win...
-
Un juego 2D no solo lleva texto, por lo que en este post haremos un Hola Mundo mas adecuado. Crearemos 2 carpetas, sprite y musica, (El or...
No hay comentarios:
Publicar un comentario