Tutorial como hacer un Flappy Bird en Love2D - Parte 2

Continuamos con el tutorial de Flappy Bird, ahora en el love.load() añadiremos el siguiente código:

tubo = {}
tubo.ancho = 20
tubo.alto = love.graphics.getHeight()
tubo.x = love.graphics.getWidth() - 10
tubo.y = love.math.random(- 100 , - tubo.alto) --Nos dará un valor random de -tubo.alto hasta -100
tubo.r , tubo.g , tubo.b = 0 , 255 , 0 -- equivalente al color verde
tubo.limite = - tubo.ancho
tubo.mov = 200 -- Movimiento del tubo en el eje X


Esto nos debe quedar así:



Si nosotros colocaramos tubo.y = 0 se dibujaría un rectangulo verde en vertical que cubriría toda la pantalla, nosotros queremos dejar un margen de 100 pixeles para que el pajaro pueda pasar en medio, es por eso que obtenemos un valor random desde -100 en el eje y, entonces, a partir de esa posición, podemos subir el tubo hasta que la parte baja del tubo quede en el limite, por eso ponemos que nos dé un valor random desde -tubo.alto.

Aquí una gráfica muy mal hecha posiblemente por falta de presupuesto:

Es por eso que es necesario que la altura maxima en el eje y sea -100, para dejar un espacio minimo. Sin embargo, en el juego original hay dos tubos y no uno, bien, vamos ahorrar un poco de código porque utilizaremos el mismo tubo para dibujar dos, unicamente aumentando 100 pixeles al eje Y.

Nos dirigimos directamente a love.draw() y escribiremos lo siguiente:

  -- Dibujamos los tubos
  love.graphics.setColor(tubo.r, tubo.g, tubo.b) -- Seleccionamos el color
  -- Primer tubo
  love.graphics.rectangle("fill", tubo.x, tubo.y, tubo.ancho, tubo.alto)
  -- Segundo tubo
  love.graphics.rectangle("fill", tubo.x, tubo.y + tubo.alto + 100, tubo.ancho, tubo.alto)


Esto nos debe quedar así:



Como podrás ver, usamos la misma tabla tubo para dibujar dos tubos, la diferencia es que al segundo tubo le sumamos el alto del tubo mas 100, esto es para porque el punto de origen del dibujado del rectangulo es en la esquina superior izquierda.

Por último, hay que darle movimiento al tubo, sí, al tubo, no es buena idea hacer que se mueva el pajaro, lo que haremos será simular que el pajaro está volando y en movimiento. Ahora escribiremos lo siguiente en el love.load():

  --Movimiento de los tubos
  tubo.x = tubo.x - tubo.mov * dt
  if tubo.x < tubo.limite then
    tubo.x = love.graphics.getWidth()
    tubo.y = love.math.random(- 100 , - tubo.alto)
  end


Esto nos debería quedar así:


En la primera línea, aplicamos el movimiento, siempre multiplicando por dt para equilibrar el movimiento, luego en la siguiente línea revisamos si el tubo es menor al limite del tubo, una vez cumplida esa condición, colocamos los tubos en la parte derecha de la pantalla, y luego randomizamos una vez mas la posición en Y, para que no reaparezca en la misma posición.

Bien ahora, el juego debería aparecer los tubos.


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