Tutorial como hacer un Flappy Bird en Love2D - Parte 3

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


No hay comentarios:

Publicar un comentario

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