Anuncios Google

Lua: Bucles y Sentencias.

Tutoriales avanzados de Homebrewes

Hoy en esta entrega avanzaremos bastante en nuestros conocimientos en lua, esta vez aprenderemos a manejar bucles y sentencias para nuestro programa. Los bucles y sentencias son muy sencillas te costara poco entender como funciona. Como siempre, recomendamos leer antes los anteriores tutoriales, para ir repasando y asi se nos va haciendo mas facil programar en lua.

Primero vamos a empezar con las sentencias. Las sentencias son como condiciones que si se cumple se ejecuta el codigo que hay en su interior, la condición a cumplir SIEMPRE debe ser una variable y nunca una función del propio lenguaje (Excepto Controles).

Vamos a ver la estructura básica de las sentencias:

if <Condicion> then
<Codigo que se ejecutara al cumplirse la condicion>
end

Os vamos a enseñar que hay que poner en cada apartado de una sentencia; primero si vemos la primera palabra veremos un "if" esto traducido al castellano significaría "Si", después vemos la parte "<Condición>" en esa parte, tu deberás poner que condición quieres que sea, mas adelante pondremos algunos ejemplos, y por ultimo el "then" que significaría "entonces". Finalmente terminamos creando el código que queramos y un end.

Vamos a ver un ejemplo básico de Sentencias:

Numero = 2
if Numero == 2 then
Numero = 4
end

Como vemos en la parte de la condición usamos 2 signos de igual, esto sirve para comparar datos, aparte de los == hay también mas signos a usar:

== (igual a)
~= (distinto a)
< (menor que)
> (mayor que)
<= (menor o igual que)
>= (mayor o igual que)

También, cuando en el código anterior Numero = 4, automáticamente esa condición deja de cumplirse, otro dato a tener en cuenta es que aparte de números, también se pueden usar Texto (También llamado String) y Booleanos (true o false).

Otra variante que tenemos es el uso de else, con else, estamos diciendo que si la condición no se cumple se ejecute el código dentro del else, mira este ejemplo:

if Choque == true then
<Codigo a ejecutar>
else --Traducido seria; Sino...
<Codigo>
end

En caso de la Variable sea true ejecutara lo que hay dentro, pero si esa variable es distinta a true, solo se ejecutara lo que haya dentro de else.

Otra variante que tenemos es el uso de elseif, elseif es como si tuviéramos varios ifs en uno solo, pero este a la vez que puede ser beneficioso para ahorrar código, hay que tener cuidado donde lo colocamos, ya que si el primer if se ejecuta los demás elseifs no, veamos un ejemplo:

Choque = true
Suma = 11
if Choque == true then
<Codigo>
elseif Suma == 11 then
<Codigo>
end

Tu pensaras que se ejecutara el if y el elseif, pues NO. Ya que mientras el primer if se ejecute los demás no se ejecutaran. En este caso deberíamos dividirlo en dos ifs distinto para que funcione como queremos.

Llegados hasta aqui, ya tenéis la información básica de las sentencias, ahora vienen los bucles, aqui os vamos a enseñar 2: Los bucles for y los bucles While true do.

Bucles For:

Los bucles for se componen digamos de 2 partes; La 1º es la variable de inicio, normalmente es 1; La 2º es la variable del final, aquí pondríamos el numero que nosotros quisiéramos. Vamos a ver un ejemplo básico de bucle for:

for i=1,VariableFinal do
<Codigo que se repetira las veces que hayas puesto en "VariableFinal", normalmente es un numero>
end

Como vemos hay un extra mas en este code; i=; esto querrá decir que la variable i sera la que ira aumentando en 1 a cada pasada del bucle, puede ser útil para hacer menús.

Bucle While true do:

El bucle While true do, es esencial para un código, ya que lo que hará es que este no se acabe en milésimas de segundo. Realmente el bucle While true do, no se llama realmente así, pero para ustedes users, sera lo primero que aprendamos.

Realmente de este bucle no hay mucho que aprender, simplemente lo que hace es ejecutar tu código infinitamente, pero cuidado, no debemos poner todo el codigo dentro del bucle, es decir no coloquemos carga de imágenes dentro del bucle ya que sobrecargaríamos la ram, lo mas ideal para poner dentro del bucle seria texto, blitear imágenes, reproducir sonidos y sprites. Aparte de también usar todo lo que aprendimos en anteriores tutoriales. Vamos a ver un ejemplo básico:

while true do
<Codigo que se repetira infinitamente>
end

Tened en cuenta que si queremos salir de este bucle porque queremos terminar nuestro programa, en una Sentencia colocamos que cuando se cumpla haga una salida con "os.exit()" (Sin comillas). Un ejemplo:

while true do
codigo
codigo
codigo...
if CONDICION == true then
os.exit()
end
end

Esto es todo por hoy, en el próximo tutorial haremos algo mas interesante que os gustara.

4.074075
Tu voto: Ninguno Votos totales: 4.1 (27 votos)

Anuncios Google

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

while not ...

Tendrías que poner algo así como esto, por ejemplo, salir del bucle al pulsar un botón:

 

while not Keys.newPress.Start do
 
Controls.read()
 
end

 

* Edito, puse mal el código

 

Saludos!

Imagen de Tinakus.Nav

Antes

Antes estaba todo el tiempo con LUA para la PSP pero, un dia, nose que me paso pero comence a pensar que no tenia futuro (El LUA no yo XDD) y comence con C++ y VB XDD

Muy buenos todos tus tutoriales

Como que el lua no tenia futuro???

Como que el lua no tiene futuro???, si no lo tubiera el juego más conocido de Android (Angry birds) no estaría programado en Lua.

Yo sinceramente creo que futuro si que tiene, es un lenguaje muy manejable y además te dice donde tienes los errores de código (Yo tengo muchos errores por culpa de los () )

 

Saludos!

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.