Como veo que hay gente que quiere aprender lua y el post de nekerafa tienen que prepararlo bien, aqui les dejo lo que sera un resumen de lo que saldra:
Preparándolo todo.
Lo Primero para ir empezando a programar en lua, es descargarse el Notepad ++
Una vez realizado eso, se instalaria se abriria se le pone el lenguaje lua y empezamos ya a escribir codigo.
Claro, una vez que tengamos eso, queremos probarlo, por desgracia este lua no te muestra los errores, si algo esta mal directamente no se ejecuta.
Aqui teneis las versiones de lua que existen para PS3: Lua player
Variables y tablas
Una variable es un espacio de memoria al cual se accede mediante un nombre que se le asigna a dicho espacio de memoria.
Tipos:
Strings:
MiNombre = "DIONI0396"
Estas son la de tipo de texto, como ves esto va entre comillas.
Booleanas:
Condicion = true
Estas son las de tipo verdadero o falso, true o false, en este caso la condicion es true
Nulas:
Puntos = nil
Son las del tipo nulo, es decir no tiene ningun valor.
Tablas:
Una tabla, es una variable que contiene mas variables, por asi decirlo:
Un ejemplo:
Variable = { 2 , "Mi nombre es", "Soy malo!"}eso seria una tabla, una tabla sirve para meter mas variables, otro ejemplo:
Variable = { } --Asi se llama a una tabla vacia ¿para que? Mira abajo Variable[1] = "Hola!" --Has visto el [1] eso seria el elemento 1 de la tabla vacia, una tabla vacia sirve para despues meterle mas informacion, tambien en vez de numeros se puede usar texto. Variable["sdfjsdf"] = "Hola de nuevo!" --Como has visto he puesto un texto sin sentido pero es valido, pero luego a la hora de llamarlo sera mas dificil por eso recomiendo siempre un numero 1,2,3,4,etc
1º Tipo:
Variable = {1,2,3."B"}
2º TipoVariable = { } Variable[1] = "Hola" Variable[2] = "Adios"
Variable = { } Variable.1 = "Hola" --Tambien se puede usar texto con comillas
Lo que veremos aqui son las operaciones logicas:
A == B -- será verdadero si A es igual a B A ~= B -- será verdadero si A es diferente de B A > B -- verdadero sólo si A es mayor que B A < B -- verdadero sólo si A es menor que B A >= B -- verdadero si A es mayor o igual que B A <= B -- verdadero si A es menor o igual que B
Estructura de control:
Las estructuras de control son ciertas sentencias que usan palabras reservadas para realizar distintas acciones
Tipos:
Condiciones if:
if <Condicion> then
<Codigo>
end
--El ejemplo es sencillo, si se cumple una condicion, se realizara el codigo si no, no
Extensiones condiciones if:
Existen unas extensiones para las condiciones if, aqui las muestro:
if CONDICION then BLOQUE elseif CONDICION 2 then --Quiere decir, que si la primera condicion no se ejecuta entonces, tener en cuenta que si se ejecuta lo 1º lo DEMAS no lo hara, podemos poner cuantos elseifs queramos. BLOQUE 2 end ----------------------------------------------------------------------- if CONDICION then BLOQUE else --Si no se cumple la condicion --lo que quieras end
Funciones:
Una funcion sirve para muchisimas cosas, yo diria infinitas.
¿Como funciona/usa?
Es simple, ponemos la palabra function seguido con el nombre que le queramos poner y un ()
Ejemplo:
function Aqui_Lo_Que_Quieras() BLOQUE --Codigo end
Para llamar esa funcion simplemente se le llama con el nombre que le hemos puesto y ()
Aqui otro ejemplo:
funcion RJ() BLOQUE end ... .. ... while true do ... RJ() ... end
Eso seria lo basico de las funciones.
Manejo de archivos:
Con esto nos referimos a leer, escribir, borrar, etc. Ya que este lua no nos permite mover un archivo de un directorio a otro, los archivos que lua puede leer y escribir son:
*.lua, *.txt (Si alguien conoce mas diganlo)
Lo primero es crear un archivo .txt que lleve varias lineas (Pueden no tener sentido como por ejemplo: asjfsidfhn, lo importante es saber abrirlo)
Una vez hecho eso empezamos:
Archivo = io.open("Nombre_Archivo.txt","Modo")
Lo explico:
En nombre_archivo ponemos como hemos llamado nuestro .txt
En Modo elegimos el modo que queremos existen estos:
Nosotros vamos a usar el r
Existen distintos metodos de leer el archivo aqui lo pongo y lo explico:
--Para leer la primera linea del archivo archivo = io.open("Nombre.txt","r") Linea = archivo:read() --Leemos la 1º linea --Si usamos la V1 de Lua player... DrawText(100,100,Linea) --Si usamos la V2 de lua player --Cargamos fuente... Fuente:Print(100,100,Linea) ----------------------------------------------------------- --Ahora para leer todo el .txt archivo = io.open("Nombre.txt","r") y = 10 for linea in archivo:lines() do --Linea es archivo:lines() esto es un poco dificil de entender, lo que queremos decir es que linea = archivo:lines() pero para reproducirlo usamos un bucle for... (Mas adelante se explica que es un bucle for) y = y + 10 --aumentamos y --Si usamos la V1 de Lua player... DrawText(100,y,Linea) --Si usamos la V2 de lua player --Cargamos fuente... Fuente:Print(100,y,Linea) end
Esto seria lo basico para leer, pero y para escribir?
archivo = io.open("nombre.txt","w") archivo:write("asdmafjsajdf") --Texto, pones el que quieras archivo:close() --cerramos archivo
Esto es lo basico de lectura y escritura de archivos.
Primer Contacto con PS3
Vamos a empezar ya a programar, lo basico es saber imprimir poner texto en pantalla
Es basico y facil, como para ello miramos esto:
--Si usamos la V1 de lua player... --Simplemente con poner: DrawText(100,100,"Hola a todos") --Ya esta el texto en pantalla --Si usamos la V2 de lua player --Cargamos fuente... Fuente:Print(100,100,"Hola a todos")
Pero claro, eso no lo imprimiria ya que la pantalla esta desactivada, para activarla:
InitGFX(720,480) --La resolucion, se puede poner la que quiera. while true do --Si Usamos la V1 de lua player... beginGFX() --Si usamos la V2 de lua player... beginGFX(0x00000) --Ponemos aqui lo que queremos imprimir y despues endGFX end
Eso seria el primer contacto con PS3
Botones:
Los botones que existen son estos:
• up • down • left • right • triangle • square • circle • cross • R1 • R2 • R3 • L1 • L2 • L3 • start • select
Como funcionan?
Es simple, lo metemos en una condicion if, y ponemos el mando a usar y el boton, ejemplo:
if cross(0) then --0 es el mando 1
pero claro, esto lo leera muy rapido, casi que el ojo humano no podra ni verlo
para ello usamos una variable, y si el boton no esta pulsado pues la variable = 0
Aqui os dejo un metodo del compañero Daklon
pulsado = 0-- variable que comprueba si el boton esta pulsado numero = 0 while true do if cross(0) >= 1 and pulsado == 0 then-- comprueba las dos cosas que dije antes Fuente:Print(500, 500, numero)-- imprime en pantalla el valor de la variable numero numero = numero + 1-- suma una unidad a la variable numero end if square(0) >= 1 or cross(0) >= 1 or circle(0) >= 1 or triangle(0) >= 1 or up(0) >= 1 or down(0) >= 1 or left(0) >= 1 or right(0) >= 1 or R1(0) >= 1 or R2(0) >= 1 or L1(0) >= 1 or L2(0) >= 1 then-- comprueba si algun boton esta pulsado pulsado = 1-- establece como 1 la variable pulsado else-- en caso de que no este pulsado ningun boton pulsado = 0-- establece que pulsado = 0 por lo que deja ejecutar codigos de if que contienen "and pulsado = 0" end end
Editado: Hilo movido a Aportes de usuarios, por favor postead en el lugar correcto, revise lasNormas de la comunidad.| Bernysonfil
Hace un rato que me he puesto
Hace un rato que me he puesto a estudiar Lua y la verdad es que me resulta mucho más dificil que C para Wii.
XDDD
Pero si Lua es superfacilisimo. Si tienes algun problema contacta conmigo por MP y te ayudare a aprenderlo.
También podeis esperar a que empiezen a subir mis tutos, que ya están hechos
NekeOS, el nuevo shell para PSP
PS4 500GB OFW, PS3 320GB OFW, PS3 500GB OFW, PSP 6.39 PRO-C Fix4.
Sony Xperia Z1 Compact con Android 5.1.1
Portatil Lenovo z50-70 Intel® Core™ i7-4510U y NVIDIA GeForce 840M con Elementary OS 0.3.2 Freya (64 bits) y Windows 10 (64 bits).
xD
Puede ser, pero no tengo tiempo para dedicarlo y aprenderme todo.
Haber si de verdad saco tiempo y me emto más.
Gracias por ofrecerte xD
Claro!!
LUA es bastante fácil, te lo digo por que mucho tiempo programe en C wii, aunque no logre muchas cosas y con lua llevo bastantes cosas.
Pero es mucho menos potente...
WTF?
Que me dices?
Puff
No sé, no me resulta fácil programar en Lua, no digo que C sea sencillo pero al menos lo entendia mejor.
Será porque no tengo mucho tiempo para dedicarle a la programación.
Salu2
Bueno
Pues vete a C
Aunque si dijeras las dudas seria mas facil explicartelo
O_o
En ningún momento he dihco que me fuera a C.
Digo que no tengo tiempo para aprender y no lo veo fácil.
Tranquilo que en cuanto tenga tiempo y empiece te bombardearé a preguntas xD
Salu2
Perfecto
:)
Voy a empezar a aprender Lua, haber si para dentro de unas semanas se algo.
Salu2
Ups!
Habia descuidado este tutorial, gracias por revivirlo xD
PD: si tienes dudas avisa.
La partes de las variable, etc (Cosa que conteste en un post) tambien estan en NDS, por si aqui no lo entiendes.
Ok
Gracias por tu ayuda.
Esta muy bien el tuto! :)
Puedes mirar los de Chimecho
Puedes mirar los de Chimecho también xD
dioni creo que hay un detalle
dioni creo que hay un detalle que no mencionaste, no estoy seguro ya que nunca lo he probado, pero con el codigo de ejemplo que venia con el lua player lo hacia asi, para buscar un archivo, no ponia "archivo.extension", sino "dev_usb000/archivo.extension", no estoy seguro si como tu lo ahs puesto funcionaria, ya que con el manejo de archivos todavia no me he metido, pero creo que es de la ultima forma
otra cosa, el ultimo codigo que psusite, se te olvido poner que estaba en lua, porque lo resalta como si fuera C
Neotecos.com
No
Para cargar un archivos es archivo.extensión, lo que pasa que el autor pone dev_usb000 para indicar que estan en un usb
yo siempre
he puesto archivo.extension y no me ha fallado.
Joe, que resumido... es mejor
Joe, que resumido... es mejor que los expliques.
Despues, es mentira que lua solo puede abrir esos archivos, Lua, como cualquier lenguaje, puede brir todos los achivos existenes ya se imagenes, un archivo txt o un eboot, lo que pasa que estos ultimos estan compilados a binario, por lo que se necesita abrirlos como binario (Son los mismos metodos pero con un b delante)
NekeOS, el nuevo shell para PSP
PS4 500GB OFW, PS3 320GB OFW, PS3 500GB OFW, PSP 6.39 PRO-C Fix4.
Sony Xperia Z1 Compact con Android 5.1.1
Portatil Lenovo z50-70 Intel® Core™ i7-4510U y NVIDIA GeForce 840M con Elementary OS 0.3.2 Freya (64 bits) y Windows 10 (64 bits).
Para que voy a hacerlo expandidos
si:
:)
Si saco tiempo me los miraré.
Gracias por el aporte! :)
Te agradezco :)
Te agradezco :)
Si quieres puedo ayudar con
Si quieres puedo ayudar con el tuto.
Pues los algoritmos seria ideal
que me ayudaras.