https://www.segasaturno.com/portal/viewtopic.php?f=33&t=7676&p=78089#p78089
-----------------------------------
Ryo Suzuki
12 May 2014, 03:30 AM

Re: Trasteando con el Lua Player de Saturn (Tutorial)
-----------------------------------
[i]--sorry, tengo que ponerlo en tres temas o el foro se vuelve loco por los codes y me los junta :S --[/i]



[b]Muy bonito, ¿y para qué coño quiero esto?[/b]

Es algo que quizás os preguntaréis. Yo lo he hecho, la verdad.
Los condicionales no hay duda que nos van a servir para muchas cosas y como decía antes se ve que son importantísimos en la programación en general. En cuanto al tema del azar... puede ser también interesante.

Le voy a dar un uso práctico para que os hagais una idea que todo con algo de ingenio se puede adecuar a lo que necesitemos. Imaginaos que cuando aprendamos más estamos haciendo un juego 3D simple y que generamos como escenario una serie de cubos que están por ahí por el fondo de la pantalla.

Podríamos hacer por ejemplo que los cubos tuvieran un color al azar. No sería muy costoso y así cada vez que viéramos ese escenario cambiaría ligeramente y nunca sería exactamente igual. Supongamos que vamos a colocar cubos verdes o rojos y dejaremos que la máquina decida al azar con las mismas posibilidades.

El mismo código de antes adaptado a esa idea, algo asi:

[code linenumbers=false]slInitSystem(TV_320x240,NULL,1)	

slPrint("Generamos un color al azar -", 2, 1) 

slRandom()

if slRandom()>0.49999999999999 then slPrint("RESULTADO: El cubo es verde", 2, 3)
else slPrint("RESULTADO: El cubo es rojo", 2, 3) 
end

slPrint("Lo hemos determinado,", 2, 5)
slPrint("con este numero:", 2, 6)
slPrint(slRandom(), 2, 7)

slPrint("-------------------", 2, 10) 
slPrint("Ahora queremos otro cubo -", 2, 11) 
slRandom()
if slRandom()>0.49999999999999 then slPrint("Esta vez el cubo sera verde", 2, 13)
else slPrint("Esta vez el cubo sera rojo", 2, 13) 
end

slPrint("Al azar con las mismas posibilidades:", 2, 14)
slPrint(slRandom(), 2, 15)

slPrint("Los pondria en pantalla si supiese", 2, 19)
slPrint("dibujar y colorear poligonos xD", 2, 20)
slPrint("De momento habra que esperar...", 2, 21)
slPrint("Ryo Suzuki _ www.segasaturno.com", 2, 24)

while true do slSynch() end[/code]

Otra vez a general la iso y a correrla en el emulador y nos encontraríamos con esto:

 [img]http://www.segasaturno.com/portal/files/images/2/azar2.jpg[/img]

Fijaos que esta vez el azar ha determinado que los dos números sean superiores a 0.5, por lo tanto los cubos son rojos los dos. Cosas del random...

También es curioso, y este concepto no lo acabo de asimilar del todo, que el slRandom() aunque crea un número al azar lo hace de forma fija. De este modo en el emulador si lo probais siempre será el mismo una vez que ha decidido ese azar. Habrá que correr la iso en otro emulador para que os aparezcan otros números, no sé cómo funciona bien pero queda como grabado a fuego. Es azar, pero totalmente fijo una vez que lo ha determinado.


Como podeis ver lo de generar un número al azar nos habría servido para algo práctico. Supongo que lo podemos usar para muchas más cosas, es cuestión de sacarle punta al tema (se me ocurren varias historias más que ya tocaré si puedo).

Si tuviese la capacidad de renderizar polígonos simples pondría unos cuantos verdes y rojos en la pantalla al azar, de momento os lo tengo que mostrar en modo texto porque hasta ahí no llego aun :mrgreen: 

En fin, eso es todo por hoy. Espero que os haya gustado y que os animeis a usar Lua y podamos aprender entre todos.

Luego os contesto a lo que me pusisteis, ya mañana :) 



P.D: Añado en documentacion esta pagina muy interesante:
http://ppcenter.free.fr/satdocs/
Tiene por ejemplo el manual que comentaba al principio de comandos en html para que podamos copiar y pegar (los pdfs estaban protegidos):
http://ppcenter.free.fr/satdocs/ST-238-R1-051795.html

P.D2: Hay una pequeña errata en el primer post que puse. Es una pequeña trampa que coloqué, en realidad. 
[quote]Nos podemos crear una carpeta nueva llamada por ejemplo Samples Mios y ahí copiamos un sample original para modificarlo y hacer nuestros testeos. [/quote]
En la carpeta Samples Mios habría que copiar en la raíz la IP.BIN tal y como está en la original Samples. Porque de lo contrario no podriais generar las isos de lo que programeis.


