Los bucles son como repetir una acción en un juego hasta que se cumpla una condición.
Por ejemplo: “Mientras el enemigo esté vivo, sigue atacando” o “Repite 10 veces el salto”.
En Lua usamos principalmente while y for.
while — Mientras sea verdaderoEjecuta el código mientras la condición sea true. Se debe actualizar la condición dentro del bucle para evitar bucles infinitos.
local energia = 5
while energia > 0 do
print("Atacando... Energía restante: " .. energia)
energia = energia - 1
end
print("¡Energía agotada!")
¡Importante! En Lua se usa do después de la condición y end para cerrar el bucle.
for numérico — Contador clásicoIdeal cuando sabes cuántas veces quieres repetir algo.
-- for variable = inicio, fin, paso do
for i = 1, 5 do
print("Nivel " .. i .. " completado!")
end
Ejemplo con paso personalizado:
for i = 10, 0, -2 do
print("Cuenta regresiva: " .. i)
end
print("¡Lanzamiento!")
for con pairs e ipairs (para tablas)En Lua es muy común recorrer tablas (arrays y diccionarios).
local enemigos = {"Goblin", "Orco", "Dragón"}
for indice, nombre in ipairs(enemigos) do
print("Enemigo " .. indice .. ": " .. nombre)
end
Diferencia importante:
ipairs() → Recorre tablas con índice numérico (en orden)pairs() → Recorre cualquier tabla (no garantiza orden)break y continue (en Lua no existe continue)break sirve para salir del bucle inmediatamente.
for i = 1, 10 do
if i == 6 then
print("¡Encontraste el tesoro en el nivel 6!")
break -- Sale del bucle
end
print("Explorando nivel " .. i)
end
Prueba esto en lua.org:
while que cuente desde 10 hasta 1 (cuenta regresiva).for para imprimir los números del 1 al 10.ipairs imprimiendo "Arma X: nombre".for del 1 al 20. Si el número es divisible entre 3, imprime "¡Múltiplo de 3!". Usa break cuando llegues al número 15.