[PSP] Lua para todos

Si alguien aun no le ha entrado al Lua por falta de documentacion (en la version de PSP, claro esta) aqui les dejo la lista de funciones comentada por mi, en como usralas (la mayoria, porque algunas no tengo ni idea de que hacen, a ver si alguien me ayuda a terminarlo).
En español, para que nadie se quede fuera, es un lenguaje sencillo y muy efectivo, esto NO es un tutorial, pero cualquiera con un pco de conocimientos de programacion le sera muy util para empezar a programar.
¿Como has montado todo el tinglado para usarlo?
SI te refieres a como usar Lua, es muy facil, yo me descargue wedgewars, y reemplaze el script.lua por el mio, para escribirlo use un programita llamado crimsom editor, que es freeware y es muy comodo para codigo (especialmente porque te muestra numeros de linea y tiene resaltes para diferentes lenguajes de script) otra opcion es LuaIDE, pero no se si funcione con el PSP :D
Otra opcion es descargar el Lua player y hacer tu app compatible con lowser, pero se me hace mas relajo...
Si te refieres a como sauqe lo que hacian las funciones, experimentando y leyendo codigo fuente :D

Por cierto, respecto a las funciones, algunas estan un poco mal documentadas, porque no tengo toda la informacion, conforme vaya viendo que hacen exactamente, ire actualizando
Vamos, que picaste aparte el codigo y luego sustituiste el codigo del juego wedgewars por el tuyo, ¿no?
nil image:fillRect(x, y, width, height, [color = transparent-black])
--Yet to be documented
--Aun por documentar


Esta Funcion es muy parecida a una usada en la SDL, lo que hace es rellenar un rectangulo de coordenadas X e Y, y de dimensiones WIDTH y HEIGHT, por un color COLOR.


Vamos que pinta un rectangulo del color tal, en la parte tal de la pantalla. xDD

al menos eso creo ....
Gracias m0rfe0 por la informacion, experimentare un poco y actualizare el archivo.
Respecto a lo de wedgewars, lo unico que hice fue leer el codigo y tomar prestadas partes de ahi, no es que haya movido eso, lo que pasa es que el interprete toma el archivo script.lua, y como el wedgewars solo traia eso, (no que en el paquete de luaplayer viene el lowser, y me dio flojera usarlo) ai que en mi programa de prueba, el eboot dice wedgewars, pero carga mi script.
Solo reemplaze una cosa por otra para ahorrar tiempo :D
sabe si se pueden declarar clases propias e incluirlas con sus cabezeras ? como c++, del tipo #include "clasepropia.h"

:P
No me entero de nada con el maldito lua de las narices. Me baje un programa para leer textos que estan en LUA, y no se como narices hacer un pbp para poder hacerlos rular en mi psp. Alguien me da una idea de como hacerlo, me estoy volviendo loco, ya que cada libro en imagenes son unos 80 megas. Si alguien lo tiene hecho seria tan amable de pasarmelo.
Aqui esta la guia de iniciacion en Lua:
1.-Bajate el luaPlayer (http://www.luaplayer.org)
2.-si quieres algo mas profesional bajate el Crimson Editor, si no, el wordpad o el bloc de notas sirve
3.-Bajate algun juego en Lua (wedgewars recomendado)
4.-Crea una carpeta y descomprime todo, de preferencia en carpetas separadas
5.- Baja mi archivo de funciones
6.- Lee ese archivo, el codigo fuente del juego de wedgewars, y el codigo fuente de los archivos contenidos en la carpeta "samples" del luaplayer
7.- Escribe tu script en tu editor de notas
8.- pasa el juego de wedgewars al PSP
9.-Salva tu script como "script.lua" sin comillas
10.- reemplaza el script del wedgewars por el que acabas de hacer
11.- borra los archivos de audio y graficos del wedgewars y pon los tuyos
12.- ve almenu juegos de tu PSP y ejecuta wedgewars
13.- con eso se ejecuta tu script.

Para el que habia preguntado de hacer includes, hasta el momento no he leido toda la documentacion, y no se si se pueda hacer eso.
Hay muchos docs en http://www.lua.org y en http://lua-users.org/wiki/TutorialDirectory

Nos vemos
Gracias tio voy a ver si me aclaro un poco con esto
Yo estoy montando el tinglado en el curro, que la cosa está tranquila por aquí.

Haber si logro hacer algo, pq llevo sin picar bastante tiempo :-(
Buah no me entero de nada. Otaboy gracias por el tutorial. pero es que no consigo aclararme, vere si alguien tiene hecho ya el pbp de ese lector de txt que hay en lua, y me lo bajare. Se que es aprovecharme un poco, pero es que no tengo ni idea, me he leido mil veces la pagina para ver como se hacian, me bajo el lua player y me aparecen mil carpetas, que no se que hacer con ellas. Yo creo que si el programa ya esta hecho, que mas les dara hacer el pbp para dejarlo listo y pasarlo por el kxploit.
Haz esto:
1.-Baja el wedgewars, que ya viene para 1.5
2.-copia los pbps
3.-Inserta tu script como "script.lua"
4.-modifica el PBP dentro del folder con el % usando algun soft, para cambiarle nombre e imagenes.
5.- pasalo al PSP

Con eso debe de funcionar
¿hay alguna manera de poder picar el codigo y en tiempo real saber si es correcto o donde has metido la gamba?

Pq por lo que he leido e investigado, para desarrollar con Lua para PSP solo es de esta cutre manera: poner el codigo en la PSP, ejecutar y haber si suena la flauta.
Ota Boy tu que lo tienes muy claro,y veo que no te cuesta mucho, te pido un favor eoliano y pspero, te currarias el loader para cargar la aplicacion de leer txt esa, por que mira que lo intento pero no consigo hacer cargar nada. Si es que yo soy enfermero y la informatica ues solo un hobby, realmente os envidio a los que dominais la programacion
Hice un tutorial para que puedan empezar a programar, esta Aqui

Para mrkaf, cuando cometes un error en Lua, el sistema te dice de una amnera muy bonita en que linea esta el error y cual es, por lo que puedes corregirlo y volverlo a pasar a tu PSP.

Estoy haciendo una especie de loader en la que te carga el script, asi no hay necesidad de salir del juego, conectar y volver a entrar al juego. Solo que he tenido problemas y por eso no he liberado nada :D

La idea es que el loader hace esto:

-Abre el puerto USB del PSP
-Inicia el script Lua al presionar una tecla.

Asi que si te equivocas, se reinicia, y el script abre el USB, entonces reemplazas el script y presionas una tecla y se ejecuta, etc, etc.

Nos vemos
Despues de investigar y trastear para poder hacer un entorno de desarrollo 'aceptable', he conseguido la manera de probar codigo sin necesidad de utilizar la PSP.

Os lo pongo a continuación. Si veis que esto deberia ir en un hilo aparte, comentarmelo y lo pongo sin ningun problema. Y si alguien lo quiere hacer en pdf, yo encantado.

------------------------------------------


1) Asociar Lua Player con los scripts Lua para la PSP

Descomprimimos este zip en c:\luaplayer

Ahora asociamos la extension *.lua al luaplayer.exe

La mas sencilla es con la opcion 'Abrir con..' del submenú de windows (boton drch del raton)

Sobre el archivo test.lua que está contenido en la carpeta luaplayer realizamos lo siguiente:

Boton derecho del raton y elegimos 'Abrir con..'

Imagen


Checkeamos y damos a 'Otros'

Imagen


Buscamos el ejecutable, lo seleccionamos y damos a 'Abrir'

Imagen


Damos a 'Aceptar'

Imagen

Con esto ya tenemos asociados al ejecutable todos los scripts que vayamos a crear.


2) Instalacion de la herramienta de desarrollo

Nos descargamos el programa Crimson Editor y lo instalamos. Lo podeis instalar donde querais, para el ejemplo será en el raiz de C:

Imagen


Ya instalado nos dirigimos a la carpeta Crimson Editor y en la carpeta spec sustituimos el lua.key por este que he creado.

Imagen

El archivo lua.key contiene las palabras reservadas, nombre de funciones, etc del lenguaje Lua. Podeis actualizarlo por vuestra cuenta y subirlo, porque faltan muchas mas por incluir. Lo que nos hace este fichero es que toda palabra que escribamos en el código y exista en el archivo, se nos resaltará para poder diferenciarla.

En la carpeta tools ponemos el archivo lua.cmd.

Imagen


Arrancamos el Crimson Editor y nos aparecerá este mensaje.

Imagen


Tranquilos, porque es normal.

Viene a decir:
"El fichero de configuración del Crimson Editor ha sido corrompido

- Ignorar este mensaje si es la 1ª instalacion
- Cargando la configuración por defecto del Crimson Editor"

Nos vamos a Document -> Syntax Type -> Customize...

Imagen


y nos aparecerá lo siguiente

Imagen


Bajamos por la lista de 'Syntax Type' hasta el 1er Empty

Imagen


Rellenamos los campos como en la captura. Para poner los lua.key y lua.spc podeis escribirlos o dar al boton Imagen

Imagen


Despues damos a 'OK'


Vamos otra vez a Document -> Syntax Type pero esta vez elegimos Lua

Imagen


Con esto hacemos que el editor nos reconozca las palabras del lua.key

Hasta aquí lo facil, esperad a la chapuza que he hecho para poder desarrollar código PSP-Lua sin necesidad de utilizar la PSP,jeje.




3) Configurar el Editor para ejecutar código PSP-Lua (ÑapaPowaa!!)

Vamos a Tools -> Conf. User Tools...

Imagen


Damos al botón de Load Tools y cargamos el archivo lua.cmd

Imagen


Con esto hacemos que cuando elijamos la opción Ejecutar o usemos el atajo de teclado 'Ctrl+R', ejecutaremos el código que hemos escrito y así veremos si tenemos algun error en el. Esto tiene una pega que mas adelante os explicaré (esta es una de las ñapas)

Vamos a View -> Line Numbers y lo activamos

Imagen


En la Barra de Herramientas activamos la opción Output Window Imagen

Con esto ya tenemos configurado el Editor y podemos comenzar a escribir código!!!!



4) Como utilizar el Editor (ÑapaPowaa en acción!!)

Siempre que comencemos un script nuevo, cread siempre un proyecto nuevo o usar uno existente.

Como comenzaremos uno nuevo, primero creamos una carpeta en C: (o donde querais) donde pondremos el codigo y archivos necesarios (imagenes, sonidos, etc). La llamaremos Lua_sample

Vamos a Project -> New Project y buscamos la carpeta que hemos creado anteriormente.

Imagen


Al proyecto le ponemos el nombre de sample y damos a guardar.

Imagen


Nos tiene que aparecer esto en el Editor.

Imagen


Ahora creamos un documento nuevo. O desde File -> New o con el icono Imagen

Pegamos el siguiente codigo:
descargar

-- create a new Color object
green = Color.new(0, 255, 0)

-- show some text on offscreen
screen.prin(200, 100, "Hola Mundo!!", green)

-- flip visible and offscreen
screen.fli()

-- wait forevever
while true do
   screen.waitVblankStart()
end


Como vereis, el código contiene errores. Esto esta hecho a proposito para enseñaros la ÑapaPowaa. No toqueis nada!!!

Supongo que ya os preguntareis que es la ÑapaPowaa, ¿no?

Debido a que el Lua para PSP no tiene de momento un compilador, usaremos el luaplayer.exe como tal. Este ejecutable lo ha desarrollado Shine de ps2dev, al parecer uno de los gurús de este port para PSP. Este programa nos ejecuta el script que hemos creado en el PC sin necesidad de montar todo el tinglado en la PSP y esto agilizará bastante el desarrollo. Es una version beta y por tanto tiene sus limitaciones.

Os comento las que he visto al usarlo:
  • Los archivos de sonido no los reproduce (si ha alguien le funciona que lo diga!)
  • El stick analogico no está aun soportado
  • Con algunos scripts falla y se cierra sin previo aviso

Lo bueno que tiene es, que aparte de poder probar el código en el PC, si tenemos algun error nos lo dira. Lo malo es que nos dice la 1ª linea del error, y cuando lo solucionemos, nos dirá la siguiente si hay. No devuelve todos los errores.

El problema de usar el luaplayer.exe desde el editor con la opcion de Ejecutar (CTRL+R) es que si el código es correcto, va a ejecutarr el programa y al tener la salida directamente al editor, se quedará pillado el luaplayer.exe. Si nos pasa alguna vez esto, sobre la ventana de sálida (Output Window) damos con el boton derecho del ratón y seleccionamos Kill Process.

Imagen


Por lo tanto, para poder saber si nuestro codigo está bien haremos lo siguiente:

  1. Damos a grabar el código, con lo cual nos saldrá la siguiente ventana

    Imagen

  2. Ubicamos el archivo en la carpeta del proyecto, ponemos el nombre script.lua y lo guardamos.
  3. Sobre el nombre del proyecto damos al boton derecho del raton y elegimos Add Active File.

    Imagen

    La forma mas rapida es dando a este boton Imagen


    Tiene que aparecernos lo siguiente

    Imagen


    Ya hemos añadido el script al proyecto. Esto es para poder usar la opcion Shell Execute del Editor.
  4. Sobre el archivo script.lua, boton derecho y elegimos Shell Execute. Veremos que se abre una ventana y de pronto se cierra. Eso es porque el codigo está mal.

    Imagen

Entonces hacemos click sobre el codigo y pulsamos Ctrl+R o vamos a Tools -> Ejecutar

Y nos debería salir esto

Imagen


Como veis, nos indica el error y en que linea está. Lo corregimos, salvamos y volvemos a realizar el paso 4.

Ahora saldrá esto.

Imagen


Volvemos a corregir y de nuevo al paso 4.

Y por fin nuestro primer código ejecutandose!!!!!!

Imagen


Las teclas del Lua Player de Shine son las siguientes:

'A' = Select
'S' = Start
'Q' = L
'W' = R
'F' = Circulo
'R' = Triangulo
'C' = X
'D' = Cuadrado
'Esc' = Salir

Flechas de Direccion = Pad


Y esto es todo! Hasta que no hagan un compilador para PC y/o MAC, asi será la manera de evitar el trastear con la PSP.

Espero que os sirva y si teneis alguna sugerencia o veis algun error, no dudeis en escribirme a mrkaf@hotmail.com o mandarme un MP

-mrKaf-
cybblade escribió:mu buen curro mkaf [oki]

Thankxx [ayay]

Haber si le es de utilidad a la gente que quiera desarrollar con Lua X-D
19 respuestas