Anuncios Google

1. Escribiendo tu primer programa en Lua

Tutoriales Avanzados Homebrewes

Ahora, vamos a hacer nuestro primer programa para la PSP en Lua. Recuerda que durante todo el tutorial vamos a usar la versión de Windows del LuaPlayer. Algunas funciones no funcionan bien o no funcionan en la versión de Windows. Por ejemplo, el sonido no es muy bueno. Algunas nuevas funciones recientemente añadidas al LuaPlayer ni siquiera funcionan en la versión de Windows. Pero, para las cosas que haremos, todo deberí­a ir bien. Deberí­as poner las carpetas luaplayer y luaplayer% en la ruta PSP/GAME de tu PSP. Si en cualquier momento quieres probar tu programa en la PSP, pon tu script.lua en el directorio que contiene el archivo EBOOT.PBP y lanza el LuaPlayer.

Abre tu archivo script.lua con el editor de texto elegido. El Block de notas está bien si es el único que tienes. En la primera parte del tutorial teneis un programa alternativo al Block de notas, bastantes vistoso para escribir y ver las códigos de la programación: NotePad++.

Nuestro primer programa simplemente va a mostrar algo en la pantalla. ¡Empecemos!

Nota: Recordad que para crear un archivo del tipo LUA (xxxxx.lua) teneis cómo hacerlo en el tutorial de introducción anterior, por si lo habeis olvidado o saltado xD

Comentarios: Lo primero que vamos a aprender es cómo poner comentarios en tu código. Los comentarios se usan para escribir anotaciones e información sobre tu código. Es muy útil en caso de que dejes a otros mirar tu código. Créeme, también te ayuda a ti mismo. Si paras un proyecto, lo retomas meses después y miras el código, seguramente estés perdido si no usaste comentarios. ¿Cómo escribimos comentarios? Es lo que vamos a hacer a continuación. Comencemos un nuevo programa con un tí­tulo y un comentario sobre el autor.

--Mi primer programa en Lua
--Autor: TuNombre

*Pincha sobre la imagen para agrandar

Como puedes ver, los comentarios se escriben comenzando con dos guiones (--). Todo lo que escribas después no será leí­do como código y será saltado e ignorado completamente. Pero, date cuenta, debes tener el comentario en la misma lí­nea de código. Si usas la tecla return para ir a otra lí­nea, tendrás que usar los guiones de nuevo para comentar esa nueva lí­nea. Es lo que hice en el ejemplo de arriba. Esto es lo que deberí­as hacer para usar comentarios por ahora. No es tan malo, ¿verdad?

Creando un objeto color: Lo próximo que vamos a hacer es crear un objeto para dejarnos imprimir texto en pantalla. Le asignaremos un color especí­fico y lo usaremos con el comando print. Aquí­ va el código. Añádelo a tu programa, asegurándote de ponerlo en la misma lí­nea. Debes también saltar una lí­nea para separar el código del tí­tulo.

ADVERTENCIA: Lua diferencia las mayúsculas de las minúsculas, por lo que los comandos deben escribirse exactamente como los muestro. El código de debajo no funcionará si escribes color en vez de Color.

rojo = Color.new(255,0,0)

*Pincha sobre la imagen para agrandar

Ya hemos creado nuestro objeto color. Básicamente esto crea un color usando valores RGB y almacenándolos en una variable, llamada rojo en este caso. Puedes obtener los valores de los colores RGB de cualquier programa de imágenes, incluso del Paint.

 

 

La variable rojo es donde la información de color es almacenada, pero eso no significa que si tú la reemplazas por la palabra azul, ésta vaya a cambiar al color azul. El nombre de la variable no tiene nada que ver con el color que contiene. El color procede del valor RGB. Así­ que si usas BigFatTurkey en vez de rojo no habrá ninguna diferencia. Si no entiendes a lo que me refiero cuando hablo de variable, no te preocupes porque aprenderemos todo sobre ellas muy pronto.

Imprimir en pantalla: Ah, la parte más excitante del programa. Usaremos ahora el comando print para imprimir texto en pantalla. Pon este código debajo de tu última lí­nea de código:

screen:print(100, 100, "Mira! He hecho que aparezca texto!", rojo)

*Pincha sobre la imagen para agrandar

Vamos a desmenuzarlo para que lo puedas entender: screen:print simplemente dice a nuestro programa que imprima algo en pantalla. Los siguientes valores se llaman argumentos y cada función puede tener diferente número y tipos de argumentos. En la función print estamos usando cuatro argumentos, son: screen:print(x, y, texto, ObjetoColor) El primer argumento, x, dice al programa a cuantos pí­xeles desde la izquierda de la pantalla debe imprimir el texto. El segundo, y, dice al programa a cuantos pí­xeles desde la parte alta de la pantalla debe imprimir el texto. El tercero es donde escribes el texto que quieres mostrar en pantalla. Recuerda que debes ponerlo entre comillas. Y el cuarto argumento es el objeto color que hemos creado anteriormente. Esto dice al programa que muestre el texto usando el color rojo, el cual hemos creado. Recuerda que debemos crear el color ANTES de usarlo en una sentencia print.

Offscreen Buffer To Onscreen Buffer: El próximo fragmento de código puede parecer confuso. Pero no te preocupes, incluso si no llegas a comprenderlo completamente. Pon esto debajo de tu último código, como siempre.

screen.flip()

*Pincha sobre la imagen para agrandar

En pocas palabras, todo es dibujado primero en offscreen (fuera de pantalla), por lo que tenemos que usar este comando para que aparezca en pantalla.

¿Un bucle?: Lo próximo que vamos a hacer es crear un programa bucle. Lo que hace es que se repita una sección de código indefinidamente hasta que algo le haga parar. En este caso, nuestro programa no terminará en cuanto el texto aparezca. Sin esto, nunca verí­amos el texto porque el programa acabarí­a demasiado rápido. Este es el código, ya sabes donde ponerlo.

while true do
screen.waitVblankStart()
end

*Pincha sobre la imagen para agrandar

Más tarde profundizaremos en los bucles. Por ahora es suficiente saber que eso tiene que estar ahí­. Guarda tu fichero y haz doble click sobre tu archivo script.cmd para lanzar tu programa. Si todo fue bien, deberí­as ver el texto rojo en pantalla.

 

 

4.87879
Tu voto: Ninguno Votos totales: 4.9 (33 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.

Gracias

Por fin e podido crear mi primer texto pero me falta mucho por entender y tomo apuntes para que no se me olvide.

Imagen de -ULTRAGAMER-

texto con colores

una pregunta vi en la imagen del post que en el note pad los codigos estan resaltados de colores y en el mio no, e visto en el post principal el programa:PSP lua highlight file pero el link esa ma me sale problema al abrir la pagina ayuda .


Soy un ultra gamer de juegos super dificiles aqui esta mi canal de youtube:

http://www.youtube.com/user/ULTRAGAMERXD

Para que el notepad++ te

Para que el notepad++ te coloree el code, debes ir al menu Lenguaje y seleccionar Lua, o guardar tu script con extensión lua y notepad++ lo coloreará automáticamente.

Imagen de barney77

Ve a la barra de

Ve a la barra de herramientas, donde dice lenguaje, pones LUA.

Imagen de reynaldohardy99

Esto se puede

ver en mi psp ya que lo intento y me sale asi:

An error has occured.
ms0:/psp/game/luaplayerhmv3/script.lua:6.000000:badargument#3.000000 to  'print' number expected, got string)


 

Trabajando en hb esperenlo!!

Imagen de luisadniel

usa luadev

usa luadev

Imagen de sault73

jeje

 

excelente me ha
funcionado a la perfección 

 

Imagen de luisadniel

esto no

esto no funciona 

screen.waitVblankStart()

¿Qué intérprete estás usando?

¿Qué intérprete estás usando?

Imagen de luisadniel

lo que dice en el tutorial,

lo que dice en el tutorial, pero quite ese codigo

 

screen.waitVblankStart()y decia<span style="color: #ff0000;">Mira! He hecho que aparezca texto!</span><span style="color: #ff0000;">pero se congela ahi&nbsp;</span><span style="color: #ff0000;">y no se porque sale estas letras de colores XD</span>

 


firma vacia porque no dejan poner nada mas :P

 

Digo si usas LuaHM, LuHMv2,

Digo si usas LuaHM, LuHMv2, LuaDEV, LPE, LUAPGE...

Imagen de luisadniel

uso LUA player v0.20

uso LUA player v0.20

Imagen de barney77

Eso

Eso es viejisimo, actualizate a Lua Dev o HM7..

Imagen de Navideathh

Desde Navideathh

si, a mi tambien me ha funcionado, me estoy dando cuenta de todo ese trabajo que llega ha hacer un programador solo por poner una simple frase buff menudo estres en poco tiempo.

Espero mejorar con el tiempo.

Jajaja, paciencia...

Todo se aprende, yo no sabia en 2 meses se un monton ya...

Saludos.

Imagen de tonivans

Exelente tuto

Muchas graias si me funciono hehehe

yo lo que hice por si las dudas guarde todos los cofigos en mi compu con el bloc de notas

y ahora al segunto tuto

GuiñoGuiñoGuiñoGuiñoGuiño


Solo quien ha comido ajo puede darnos una palabra de aliento XD XD XD

Imagen de sting18

Suerte tonivans echale ganas

Suerte tonivans echale ganas

Bieeeeen!!

Bieeeeen!! lo logreeee!!!

Ahora al 2º tuto!!

exelente!

listo, lo logre a la tercera. xD

Imagen de NightKnight

Muchas gracias ya entendi

Muchas gracias ya entendi algo del psp, y la programacion de ds no es diferente a la de la psp jeje pero por aora no lo puedo probar porq no estoy en mi computadora ojala te pudiera donar algo pero we

Imagen de Molo Johny Banana

Venga ya

Tutorial 1, listo!

A lo que sigue!

ayuda porfavor

vereis no se donde debo guardar mi "programa" llamado mira.lua(el nombre no importa) el caso es que lo e guardado en difirentes lufares pero nada primero lo meti en la carpeta PSP/GAME sin mas en la raiz y en otras mas que no recuerdo el nombre.

 

porfavor que alguien sea amable y que me contexte

 

salu2,

negro joe

Imagen de hhuanag

si esta ahi nunca ba

si esta ahi nunca ba afuncionar ya que solo kieres ver el programa.debistes aver leido que necesitas Lua player para windows (Pc) o para el Psp asi que te lo bajas y lo abres tu codigo con Lua player y ya veras qe se mirara tu programa

Nota: regresate en el tuto "iniciarse de una forma alternativa en lua"  y te aparecera el programa lusa2


Con Palabras Sencillas, Hoy Quiero Decirte Me Gustas, De Pies A Cabeza, Que Es Mas claro Que El Agua Que Te Necesito, Me Gustas Todita Completa!

"Banda El Recodo(8)MegustaTodoDeti"

Imagen de ρєℓαιισ

Funciono! Gracias chicos de

Funciono!

Gracias chicos de SB ahora estoy aprendiendo LUA :D!

 

Salu2!

Imagen de Maxwuel

MUUYYYY BUENO

MUYYYY bueno

el tuto 

se paso

='.'=

WOOOW.

wooooooow muchísimas gracias, lo conseguí!! Salió MIRA, HE HECHO QUE APAREZCA TEXTO en rojo!!!!

 

Ahora a seguir con los tutoriales!

me

aparece el texto como se supone pero se sierra muy rapido y se me crea un documento es eso o no? EDITO = ya, algunas veses no pasa y se queda la pantalla por q?

Imagen de BBC

ayudaa!

aveer lo e consegido acer pero e pues un titulo y aora lo k kiero acer esk el titulo desaparezca y aparezca otro, como lo ago? yo e exo esto aver si funcionaba pero nada

--nuyevp proyecto

rojo=Color.new(255,0,0)
screen:print(100, 100, "mi juego para psp.", rojo)
screen.flip()
verde=Color.new(0,255,0)
screen:print(100, 100, "BY BBC.", verde)
screen.flip()
while true do
screen.waitVblankStart()
end

respondedme en mensaje privado xfavooor


EDITADO POR NITEMAN: Firma eliminada por exceder las normas.

Ser el mas rapido no significa ser el mejor

Imagen de Robione22

Primero para que

tu código este más acomodado, pon la variable verde debajo de rojo, son colores en general, ahora en el lugar donde iría verde agrega un screen:clear(), espero te funcione.

Imagen de oral

muy buena informacion!!!

pedazo de tutto me a servido de fabula, facil ameno y rapido para torpes como yo jejejeje un saludo family

Muchisisisimas gracias...

Desde hace mucho estaba tratando de entrarle a la programacion y no sabia como comenzar..... asi k creo k este sera un buen comienzo, k mejor q comenzar a hacerlo con mi psp    Cool. Bueno muchas graxx por el tuto se te agradece muchoo.

Imagen de ALAMEDA

wow

wow que wapo jeje lo consegui que apareciera texto en el pc y en la psp muxas gracias elender ahora voy a leer el 2do tutorial

Imagen de Juan_21 y Pep_91

Buen tuto

felicidades

Formato Fuente

¡Hola!
Estoy intentando crear un juego y me he dado cuenta que el texto es demasiado pequeño para leerse bien. ¿Hay alguna forma para cambiar el tamaño o el tipo de letra (Arial,...)? ¿Y se puede poner en negrita, cursiva o subrayada?
Espero que se pueda....
Gracias

Imagen de ELeNDeR

¿A qué texto te refieres

¿A qué texto te refieres exactamente? ¿Al que aparece en la PsP cuando mandas mostrar un texto? Si es así, sí que se puede cambiar el tipo de fuente y el tamaño. Pregunta a Google, "el que todo lo sabe". Saludos.


Ayuda !!

hola, disculpen con estos tutoriales es suficiente para hacer un juego?? de que pagina puedo sacar mas scripts o tutoriales o ayuda !! eske kiero hacer un juego con todo empeño !! ayuda por favor ! nesesito mas fuentes de tutoriales !

Imagen de ELeNDeR

Estos tutoriales que vamos

Estos tutoriales que vamos publicando van dirigidos a los programadores novatos que quieran empezar a programar sus propios juegos para la PsP. Se ha empezado desde cero y poco a poco ha ido subiendo el nivel. Sé de buena tinta que hay usuarios que se están animando a crear juegos utilizando LUA, ¿verdad, N2eiDer? Si te fijas en la sección Juegos de esta misma web, cada vez aparecen más juegos programados en LUA, lo que significa que LUA es un lenguaje de programación válido para desarrollar juegos.

A tu pregunta de que si estos tutoriales son suficiente para crear un juego, la respuesta es que no, aún es pronto, pero con la inestimable ayuda de Google y partiendo de la base de estos tutoriales, puedes empezar a crear algo interesante. Pides más webs con documentación de LUA, qué mejor que preguntar a Google, pero aquí te dejo dos oficiales (en perfecto inglés, of course):

http://www.lua.org/manual/5.1/ 

http://lua-users.org/wiki/TutorialDirectory 

Como ya te han dicho en otro post, en Beta estaremos encantados de poder disfrutar de los juegos que programes, así que ánimo y cuando tengas algo envíanoslo. Saludos.

Gracias

Muchas gracias por las paginas jeje y por la ayuda elender, ahora si voy mejorando jeje, oye tengo una dua y no se si tu me la puedas responder, si restoy programando para Lua enun block de notas no importa los espaciones que de entre comandos?? es decir es lo mismo dar mas espacios a que si escribo los scripts con el mismo exacto espacio que tu pones en los tutoriales? tambien tengo otra, aveces no me funciona el codigo ya que es por que esta mal alguna palabra y cuando lo ejecuto simplemente no lo abre, entonces corrijo y lo abre, pero no hay algun modo de ver en que parte esta el error exactamente?? por que si llego a hacer un juego imaggina lo que me tardaria buscando el error... Les prometo un juego muy pronto..

Imagen de ELeNDeR

Supongo que por espacios

Supongo que por espacios entre comandos te refieres a las tabulaciones al comienzo de cada línea. Creo que ya comenté anteriormente que no son obligatorias pero sí muy convenientes porque el código gana en claridad. Puedes borrar las tabulaciones si quieres, pero no te lo recomiendo. Ah, y mejor que el bloc de notas del Windows te recomiendo el Notepad++, que es gratuito y tiene soporte para el lenguaje Lua, verás como se ponen de colores las palabras y como se numeran las líneas, muy útil.

En cuanto a que cuando hay un error la ventana se cierra muy rápido, es un tema difícil. Puedes pasarlo a la PsP y ahí sí puedes ver qué error da, pero si no quieres estar todo el rato pasando a la PsP yo lo hago de una forma muy cutre: creo un acceso directo del script.cmd y en propiedades del acceso directo le digo que la ventana aparezca en la parte de abajo, cuando ejecuto le doy al botón imprimir pantalla y luego lo pego en el paint, así veo el error que da. Ya avisé que era muy cutre

Esperamos con ganas que subas tu primer juego en Lua. Así podremos disfrutar de él y aconsejarte como mejorarlo. Saludos.

Imagen de gogmaghog

Pause

Cuando te aparece un error la pantalla desaparece muy rapìdamente, para evitarlo al crear el script escribe pause en la segunda linea quedaria asi:

 

luaplayer script.lua
pause



Imagen de ELeNDeR

Ya dije que mi solución era

Ya dije que mi solución era muy cutre Gracias gogmaghog

Limites

hola, de verdad que esoy entrado con esto de LUA ! jeje quisiera saber hasta que limites puedo llegar con lua, es decir...como que es lo maximo que puedo crear? un reprogductor mp3 o de video o que?? otra duda..el luaplayer para psp si lo van actualizando? y una mas, que es mejor LUA o programar juegos que no corren en lua(no se como se llame esos ejecutables)

Imagen de ELeNDeR

Son muchas preguntas y te

Son muchas preguntas y te voy a dar mi opinión personal, que no quiere decir que sea la verdad absoluta, habrá gente que piense cosas distintas.

Yo no sé donde están los límites de Lua, pero he visto juegos homebrew muy buenos creados en este lenguaje. Lua no soporta mp3 actualmente, pero hacer un reproductor no sería complicado en caso de que en un futuro soporte ese formato (echale un vistazo al tutorial de Sonidos). En cuanto a vídeo, estoy un poco perdido, no he visto nada acerca de eso.

Respecto a tu última pregunta, debo decir que los juegos comerciales están escritos en C/C++ y no en Lua. A mi juicio, Lua es una buena forma de empezar a programar para la PsP, pero es posible que se quede corto para los programadores con un alto nivel. Si quieres un lenguaje poderoso pasate a C/C++.

Saludos. 

Hola, muchas gracias

Hola, muchas gracias gogmahoh y elender me ha servido de mucho su ayuda =) jeje disculpen si me ekivoko en sus nombres esque todavia no me los aprendo bie, de verdad, gracias =D

duda

hola eh echo todo bien y no funciona, me baje el script y lo puse en la carpeta del lua de windows y lo guardo como .cmd y no funciona abri el script y copie el contenido y lo pegue en un archivo que trai por defaul que dice test y ahi si funciona, que esta mal?

Imagen de ELeNDeR

Es muy sencillo

Es muy sencillo. Al archivo llamado script.lua, que es el que contiene el código, no hay que cambiarle la extensión. Este archivo simplemente lo metes en la misma carpeta donde está el archivo "luaplayer.exe". Luego edita el archivo "script.cmd" y comprueba que ponga: "luaplayer script.lua" (sin las comillas).

Prueba así y nos comentas.

Ayuda

hola, ya le hice asi y no, mira lo hice yo y no funciono luego baje el script tuyo y lo guarde como script.cmd , y lo ejecuto y se abre una ventana rapidisimo y se cierra, lo que hice fue copiar el codigo y pegarlo en un archivo que viene de muestra que se llama test y asi si me funciona =S que estara mal?

Imagen de ELeNDeR

Es importante que el archivo

Es importante que el archivo con extensión LUA se llame script.lua porque a la hora de pasarlo a la PsP ése es el nombre válido. Te cuento exactamente qué es lo que tienes que hacer para que te funcione:

  1. Descargate el luaplayerwindows-0.14.zip.
  2. Descomprimelo.
  3. Renombra el archivo test.cmd a script.cmd.
  4. Edita el archivo script.cmd. Verás que contiene la siguiente línea: luaplayer test.lua
  5. Cambia  luaplayer test.lua por luaplayer script.lua y guarda los cambios.
  6. Copia en la misma carpeta el archivo script.lua que te descargas de esta misma página.
  7. Haz doble click sobre script.cmd para que se ejecute el script.lua.

Si sigues esos sencillos pasos te debería funcionar sin problemas. Cuentame si lo has conseguido o no. 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.