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