Code: Select all
-- Lista para almacenar los planetas
planetas = {}
local speed = 100
local planeta_creado = 0
resolucion_x = 640
resolucion_y = 480
function love.load()
-- Configurar la ventana
love.window.setTitle("Planetas Móviles Aleatorios")
love.window.setMode(resolucion_x,resolucion_y)
image = love.graphics.newImage("001.png")
crea_Planeta()
end
--
-- Inicializar planetas
function crea_Planeta()
local velocidad_y_inicial = love.math.random(-8, -30)
local planet = {
x = 0,
y = 480- image:getWidth(),
velocidad_x = love.math.random(1, 8),
velocidad_y_inicial = velocidad_y_inicial,
velocidad_y = velocidad_y_inicial,
radio = image:getWidth()/2
}
table.insert(planetas,planet)
planeta_creado = planeta_creado + 1
end
--
function love.draw()
-- Dibujar los planetas
for _, planet in ipairs(planetas) do
love.graphics.setColor(1, 1, 1)
love.graphics.draw(image, planet.x, planet.y)
end
-- Mostrar información en la esquina superior izquierda
love.graphics.setColor(1, 1, 1)
love.graphics.print("FPS: " .. tostring(love.timer.getFPS()), 10, 10)
love.graphics.print("Planetas creados: " .. tostring(planeta_creado), 10, 50)
end
--
--
function love.update(dt)
-- Mover los planetas existentes
for _, planet in ipairs(planetas) do
-- Mover horizontalmente
planet.x = planet.x + planet.velocidad_x * dt*speed
-- Si llega a algun extremo de la pantalla en el eje x
if planet.x < 0 or planet.x > resolucion_x then
-- Cambia el signo del incremento y con ello la dirección del movimiento
planet.velocidad_x = -planet.velocidad_x
end
-- Mover verticalmente
planet.y = planet.y + planet.velocidad_y * dt *speed
-- Si la longitud del bote ha llegado a su límite
if -planet.velocidad_y <= planet.velocidad_y_inicial then
-- Reinicia la longitud a la inicial
planet.velocidad_y = -planet.velocidad_y
else
-- Va bajando el incremento en la longitud del bote
planet.velocidad_y = planet.velocidad_y + dt*speed
end
end
if creandoplaneta then
crea_Planeta()
end
end
--
function love.keypressed(key)
-- Iniciar la creación de un planeta al presionar la barra espaciadora
if key == "space" then
creandoplaneta = true
end
end
function love.keyreleased(key)
-- Detener la creación de un planeta al soltar la barra espaciadora
if key == "space" then
creandoplaneta = false
end
end