En Lua, como en cualquier lenguaje, necesitas hacer cálculos: daño de un ataque, vida restante, dinero ganado... Los operadores matemáticos son tus herramientas para eso.
Son casi iguales a JavaScript, pero con pequeñas diferencias. Aquí están:
+ SumaSuma dos números.
local vida = 50
local curacion = 20
local vidaTotal = vida + curacion -- 70
print(vidaTotal)
- RestaResta un número de otro.
local vidaMax = 100
local daño = 25
local vidaRestante = vidaMax - daño -- 75
print(vidaRestante)
* MultiplicaciónMultiplica dos números.
local precioItem = 10
local cantidad = 5
local precioTotal = precioItem * cantidad -- 50
print(precioTotal)
/ DivisiónDivide un número entre otro.
local experiencia = 100
local jugadores = 4
local expPorJugador = experiencia / jugadores -- 25
print(expPorJugador)
% Módulo (Resto)Devuelve el resto de una división. ¡Útil para saber si un número es par o impar!
local monedas = 17
local resto = monedas % 5 -- 2
local numero = 8
local esPar = numero % 2 -- 0 = es par
Lua tiene un operador único que JavaScript no tiene: ^ para potencias.
local base = 2
local exponente = 3
local resultado = base ^ exponente -- 8 (2 * 2 * 2)
print(resultado)
-- Ejemplo en un juego: calcular daño crítico
local dañoBase = 10
local multiplicador = 2
local dañoCritico = dañoBase ^ multiplicador -- 100
Como en JavaScript, puedes combinar operación y asignación en uno solo:
local puntos = 50
puntos += 10 -- puntos = puntos + 10 → 60
puntos -= 5 -- puntos = puntos - 5 → 55
puntos *= 2 -- puntos = puntos * 2 → 110
puntos /= 2 -- puntos = puntos / 2 → 55
puntos %= 10 -- puntos = puntos % 10 → 5
print(puntos)
¡Atención! En Lua no existen ++ ni --. Usa += 1 o -= 1 en su lugar.
local contador = 0
contador += 1 -- contador = 1
contador += 1 -- contador = 2
Lua también sigue reglas matemáticas: Paréntesis, Exponentes, Multiplicación/División, Suma/Resta.
local resultado = 5 + 3 * 2 -- 11, no 16 (multiplica primero)
local conParentesis = (5 + 3) * 2 -- 16 (suma primero)
local potencia = 2 ^ 3 * 2 -- 16 (2^3 = 8, luego 8*2)
Prueba esto en lua.org:
vidaJugador = 100 y dañoEnemigo = 25.multiplicador = 1.5 y calcula el daño crítico multiplicando dañoEnemigo * multiplicador.^) para calcular 2 ^ 4 e imprime el resultado.expGanada = 150, divide entre 3 jugadores y imprime cuánta exp recibe cada uno.