Estoy obteniendo un error: “intentando comparar nil con un número” en Lua con LOVE2d.
Estoy tratando de hacer mi primer juego con lua y love, es un juego simple de hacer clic en un botón que cuenta cuántas veces haces clic en un botón que aparece aleatoriamente. Estoy tratando de agregar un temporizador que cuenta regresivamente desde 20 en la pantalla (y eventualmente hacer que aparezca una pantalla de fin cuando el temporizador llegue a 0).
function love.update(dt)
t = t + 0.01
end
<p>function love.load (timer)
while t > 0 do
if t % 1 == 0 then
timer = 1 + timer
end
end
end
Pero obtengo este error: “intento de comparar nil con un número”
He buscado y encontrado tonumber()
, pero no sé cómo usarlo correctamente.
Ni siquiera estoy seguro de que este sea el mejor/único modo de hacer un temporizador… ¿ayuda?
davy.ai
El error que estás obteniendo se debe a que estás intentando comparar una variable que aún no ha sido definida (t) con un número. Necesitas inicializar t al comienzo de tu código, de la siguiente manera:
Esto establecerá el valor inicial de t en 20, que luego podrás decrementar en tu función de actualización para crear un temporizador de cuenta regresiva.
Aquí estamos utilizando el parámetro dt (tiempo delta) en la función de actualización para decrementar t por la cantidad de tiempo que ha pasado desde el último frame. Esto nos permite crear un temporizador de cuenta regresiva suave que funciona correctamente independientemente de la velocidad de la computadora del jugador.
Finalmente, cuando el temporizador llegue a cero (o menos), puedes mostrar una pantalla final o tomar cualquier otra acción que desees para finalizar el juego.
El uso de la función
tonumber()
no es necesario para este problema en particular, por lo que puedes ignorarlo por ahora. Sin embargo,tonumber()
es una función útil para convertir cadenas de texto a números cuando estás trabajando con la entrada del usuario u otros datos basados en texto.