https://www.segasaturno.com/portal/viewtopic.php?f=33&t=7676&p=78242#p78242
-----------------------------------
Ryo Suzuki
16 May 2014, 02:15 PM

Re: Trasteando con el Lua Player de Saturn (Tutorial)
-----------------------------------
[quote user="Indiket" post="78180"]Que interesante es el USB Data Link!! Ryo, sabes si es fácil obtenerlo? Vale para todos los Action Replay?? Me interesaría tener uno ya!!!  :mrgreen: 
[/quote]

Es facil. Vienes a verme y te lo dejo junto a un Action Replay de los antiguos que tiene puerto para conectarlo.

Quiero que el bueno de Indiket se meta en Saturn, este hombre es un crack de los ports, etc... :lol:

[quote user="FacundoARG" post="78193"]
Indiket, el wrapper esta publicado en segaxtreme. Es el que vbt usó con el Wofl3D, le envié un mensaje privado hace 1 año más o menos y nunca me contestó.

Fijate si tenes suerte en compilarlo, no parece difícil pero no tengo mucho tiempo.[/quote]

Tenemos que mirar lo del SDL Wrapper a fondo. Facundo enviale un privado desde aqui mismo si puedes, que el bueno de vbt anda por aqui por el foro y he hablado con el hace poco.

Bueno, sigo con mis tutoriales. ¿Que pensabais que os iba a dejar en paz?



[b]Más estructuras de control: while[/b]

Hemos visto y usado estructuras de control como el if. Ahora vamos a ver otra que es el buqle [b]while[/b] cuyo propósito es repetir un bloque de código mientras una condición se mantenga verdadera.

Imaginate, por poner un ejemplo practico de la vida real, que tienes un juego de segunda mano para vender y piensas "por menos de 10 euros no lo vendo". Varios amigos te van haciendo ofertas, te doy 3 euros, te doy 7, te doy...

Entonces llega uno que te ofrece 11 leuros y automaticamente se lo vendes. O sea que mientras(while) que no te ofrezcan al menos 10 euros tu no lo soltabas :mrgreen:

Pues esto es lo mismo que hace el comando while en Lua. Te mete en un bucle en el que se ejecuta un bloque de codigo hasta que no se cumpla esa condicion.

[quote]- while loop

while condition do
  block
end[/quote]

Vamos a verlo con un caso practico con el Lua Player de Saturn. He vuelto a perpetrar un codigo de los mios, aqui lo teneis:

[code linenumbers=false]--/***************************************************
--
--  WHILE SAMPLE SATURNO TUTORIAL
--
--***************************************************/

local variable_numerica = 1

local variable_saltolinea = 4

slInitSystem(TV_320x240,NULL,1)

slPrint("- EJEMPLO DE WHILE -", 12, 1) 


while variable_numerica<10 do

slPrint(variable_numerica, 3, variable_saltolinea) 
variable_numerica = variable_numerica + 1
variable_saltolinea = variable_saltolinea + 2

end


slPrint("Ryo Suzuki para www.segasaturno.com", 3, 25) 

while true do slSynch() end[/code]

Generamos la iso como siempre y lo probamos en el emulador. Nos aparece esto:

 [img]http://www.segasaturno.com/portal/files/images/2/while.png[/img]

Ha funcionado. Le hemos dicho que vaya imprimiendo una variable numerica en pantalla y que esa variable se vaya incrementando +1 cada vez y la vaya mostrando en pantalla en ese proceso, [b]MIENTRAS[/b] sea menor de 10. Cuando sea mayor o igual a 10 ya el bucle del while deja de ejecutarse y en este caso el programa termina.

Vamos a ver el codigo comentado para que quede mas claro y explicar las instrucciones y como lo he montado:

[code linenumbers=false]--/***************************************************
--
--  WHILE SAMPLE SATURNO TUTORIAL
--
--***************************************************/

local variable_numerica = 1  -- creamos la variable que vamos a imprimir en pantalla y vamos a ir incrementando hasta que llega a 10

local variable_saltolinea = 4  -- esto es una variable extra que no se va a ver pero nos va a servir para que imprima cada vez la variable anterior en una linea diferente porque si no no veriamos como se incrementra en pantalla (seria instantaneo a nuestros ojos)

slInitSystem(TV_320x240,NULL,1)

slPrint("- EJEMPLO DE WHILE -", 12, 1) 


while variable_numerica<10 do  -- comienzo de la estructura de control while, le estamos diciendo como veis que mientras la variable numerica sea menor de 10 que haga el siguiente bucle

slPrint(variable_numerica, 3, variable_saltolinea) -- *comienzo del bucle, imprime la variable con el valor que tenga en ese momento, el 3 son tres espacios en la linea que le toque, la variable salto de linea es en la linea de la pantalla que la queremos (empezara en la 4)
variable_numerica = variable_numerica + 1 -- incrementamos la variable numerica en uno, cada vez le sumamos uno en este bucle 
variable_saltolinea = variable_saltolinea + 2 --  incrementamos la variable salto de linea dos, para que cada vez imprima la variable numerica dos lineas mas abajo y no se pise con la anterior impresion en pantalla *fin del bucle

end -- fin del while


slPrint("Ryo Suzuki para www.segasaturno.com", 3, 25) 

while true do slSynch() end[/code]

Creo que habra quedado bastante claro. Como el if el while nos puede servir de mucho a la hora de programar cualquier cosa que hagamos. Luego le doy una vuelta de tuerca a este mismo ejemplo si puedo, que voy mal de tiempo ahora mismo y me tengo que ir a comer.

Un saludo y que no se anime tanta gente a probar estos tutoriales y a trastear con Lua que estoy desbordado de preguntas :mrgreen:


