En los juegos hay que dar margen el azar.

Los enemigos pueden aparecer por distintos puntos en la pantalla, su velocidad y potencia de disparo puede ser distinta, la frecuencia con la que aparecen los bonus, o incluso la necesidad de tirar un dado, … el azar añade realismo y sorpresa al juego, lo hace menos predecible y más jugable.

¿Como tiramos los dados?

Lua dispone de multitud de funciones matemáticas, en este caso necesitamos las funciones random.

Random es aleatorio en inglés

Únicamente tenemos que iniciar una «semilla» de aleatorios y posteriormente podremos pedir al sistema un número entre el intervalo que queramos.

Iniciamos la semilla con math.randomseed(), necesita como parámetro un valor con el que establecerse, usamos fecha-hora del sistema, os.time():

math.randomseed(os.time()) -- iniciamos semilla de tiempo

Una vez iniciada la semilla, esto solo hay que hacerlo una vez, podemos pedir tantos números aleatorios como necesitemos con la función math.random() indicando el número menor y el mayor del intervalo.

Por ejemplo, para tirar un dado:

dado=math.random(1,6)
print("has sacado un " .. dado)

Si queremos valores entre 1 y 100:

porcentaje=math.random(1,100)

O entre 300 y 1200:

velocidad=math.random(300,1200)

Es posible combinarlo para obtener valores más específicos. Por ejemplo, valores entre 150 y 300 con intervalos de 5 en 5: 150, 155, 160, 165…

velocidad = 100 + (5*math.random(10,40)) -- velocidad de la nave variable, entre 150 y 300 a intervalos de 5

En la próxima entrega utilizaremos el azar para el posicionamiento, crearemos naves enemigas y veremos los principios del movimiento autónomo.

¿Te perdiste la última entrega? mira como añadir sonido al juego aquí


Un saludo!!

Deja tu comentario