¡Buenas gente! hace tiempo que había dejado esto pausado, pero he regresado para continuar este tutorial, no crean que lo iba a dejar así ;)
En esta entrega, explicaré todo lo necesario para comenzar, y como imprimir texto en pantalla, para lograr un Hola Mundo.
Como dije en la anterior entrega, a partir de este tutorial todo será práctico, es decir, que ya pueden ir sacando sus PSP's y alistando sus dedos para Codear!
Para poder programar necesitaremos varias cosas, las listo a continuación:
Abrimos Notepad++ y en Lenguaje escogemos "Lua", luego, vamos a Archivo>Guardar como... y lo guardamos como "script.lua" en la ruta donde está el EBOOT, en nuestro caso, en "ms0:/PSP/GAME/Tutorial", y ya estamos listos para programar!
Como necesitaremos que nuestro texto "Hola mundo" se muestre SIEMPRE en pantalla, vamos a necesitar un bucle que repita la funcion que imprime nuestro texto, como habrán visto en muchos lugares se usa el "while true do", así que nuestra primera línea en el script (desde ahora me referiré con script al script.lua) será esta:
while true do
Sintaxis: while true do, es un bucle que se repite siempre y cuando la condición que pongamos entre las palabras "while" y "do" sea verdadera, como queremos que se muestre siempre, forzamos una condición verdadera, escribiendo "true"
Lo siguiente será imprimir el texto en pantalla, para eso usaremos esta línea:
screen.print(10,10,"Hola Mundo")
Sintaxis: screen.print en este caso toma tres argumentos:
Nota: screen.print puede tener más argumentos que esos, en otras entregas haremos uso de ellos, pueden verlos en la Documentación.
Y por último cerraremos el lazo repetitivo while con "end", con lo que el código final nos quedaría así:
while true do screen.print(10,10,"Hola Mundo") end
Pues simple, imaginemos que tenemos una sola pantalla en la que vamos a dibujar, por decir algo, el escritorio de Windows, Colocamos el wallpaper, los íconos, la barra de tareas, alguna que otra ventana abierta, el cursor; en fin, varias cosas, pero ahora tenemos que actualizar por si se ha movido algo, borramos todo y la pantalla se queda vacía, mientras comenzamos a colocar todo de nuevo, ¿Feo verdad?
En cambio, si usamos dos pantallas, una será la que mostraremos mientras en la otra colocaremos wallpaper, íconos, barra de tareas, etc; al terminar las cambiamos, ahora, cuando toca actualizar, en lugar de borrar la que se está mostrando, nos vamos a la otra pantalla, la borramos y actualizamos wallpaper, íconos, barra de tareas, etc; y al terminar la cambiamos de nuevo con la otra, si repetimos el proceso varias veces, nunca nos quedamos sin imagen en pantalla!!
Entonces, para poder intercambiar las "pantallas" en Lua, tenemos una función llamada "flip", que pertenece al módulo screen, por lo tanto, al terminar de dibujar todo lo que queremos mostrar, en nuestro caso, el "Hola Mundo", pondremos screen.flip() quedando nuestro código así:
while true do screen.print(10,10,"Hola Mundo") screen.flip() end
Felicidades!! ya saben imprimir texto en pantalla, los espero en la próxima entrega, tratará sobre el uso de los controles, es decir... el Button Tester xD
Cualquier duda que tengan, hágamenla saber por comentarios, así si alguien tiene la misma duda, ya la habré respondido :)
Saludos!
Comentarios
Pregunta
Hola, soy un super novato en estos de la programacion asi que no te rias de mi sencilla consulta :
No entiendo cuando dices guardar en " ms0:/PSP/GAME/ " , es una carpeta en windows (porsiacaso estoy ocupando windows para programar) ???
Saludos.
es en la psp. en este
es en la psp. en este tutorial explico como instalar el entorno de programacion en primer paso
De primera muchas gracias por
De primera muchas gracias por tomar mi duda, pero aún sigo sin entender. Vi tu pagina y la parte del primer paso y mencionas que debo crear una carpeta en la ruta"ms0:/", aun no entiendo a lo que se refiere, ¿debo de no estar entendiendo algun termino?. Enserio soy suuuuper novato en esto de la programacion xd y ahora lo poco que e entendido es que primero debo crear un ambiente en donde pueda programar (algo que crei que no tenia contemplado en esta primera etapa :S). Pero no logro entender la ruta "ms0:/", el compadre de abajo dice que es una referencia pero no caxo :S ..ayuda plis !
PD: nose porque presiento que mi duda debe ser terrible ñufla xd
Realmente estás
Realmente estás malentendiendo dos cosas:
Como notarás, la única preparación que debes hacer es copiar el eboot.pbp a la memoria de tu psp, a la ruta PSP/GAME/Carpeta (el nombre de la carpeta no importa), y en esa misma ruta crear un archivo llamado script.lua, con el que irás trabajando conforme avances. Eso es todo ;)
..
, ms0:/, es la memoria que usa tu psp, cuando entras ala memoria desde la pc , la ruta, puede ser f,g,h,k dependiendo de los dispositivos que tengas en tu pc, en el psp siempre es ms0:/ que significa memory stick 0 , si tu psp es go la ruta es ef:0, lo de entorno de programacion no me hagas mucho caso es mas sensillo de lo que parese, puedes programar en lua donde sea pero para probar lo que has hecho tendras que meter una carpeta con el eboot y el script adentro, en tu psp obiamente en la ruta donde estan todos tus juegos en la carpeta game que esta en la ruta ms0:/psp/game/, si es psp go lo unico que cambia es esto ms0: por ef0:.
y si no tengo una psp y lo
y si no tengo una psp y lo quiero hacer directamente en windows .. puedo crearlo en cualquier carpeta ??
aaa perfecto ! .. no creo
aaa perfecto ! .. no creo programar cosas tan grandes.. si me consigo el emulador, lo ejecuto usando el emulador seleccionando la carpeta en donde esta el archivo supongo??
si pero como vas a probar el
si pero como vas a probar el rpograma, no se puede arrancar desde el pc al menos que tengas el emulador pero no funciona bien es muy lento si tienes un emulador para psp que funciona bien me lo pasas.xd
No, es en la memory stick
No, es en la memory stick (ms0:/ es una referencia a la memory stick del psp).
No puedo hacer ni el hola
No puedo hacer ni el hola mundo
Vale... pero cuál es el
Vale... pero cuál es el problema? =/
me apracece error capturando
me apracece error capturando erro que estoy haciendo mal?
Pon tú codigo, por favor.
Pon tú codigo, por favor.
Gracias
muchad gracias rober
EDITADO: escribi un texto demasiado largo y no me aparece conpleto en pantalla que puedo hacer??gracias
Por ahora nada, hasta que no
Por ahora nada, hasta que no aprendas a manejar las funciones básicas. LuaDEV te va ayudar, pero no te va hacer todo (eso es lo interesante de la programación... resolver los problemas que se te presentan).
PD. Por favor no hagas comentarios duplicados, puedes editar tu comentario anterior si nadie te ha respondido.
Por favor
Por favor alguien me puede decir con que extencion guardo el script
Arriba lo menciona... "...
Arriba lo menciona...
"... Archivo>Guardar como... y lo guardamos como "script.lua" en la ruta donde está el EBOOT ..."
Sintaxis?
no entiendo que es sintaxis me explican porfavor
Se refiere a la forma
Se refiere a la forma correcta de escribir una instrucción para que funcione como debe (después de cada línea Chime da una explicación).
lo hice todo bien :)
mira lo hice todo bien hasta mi nombre puse xD
Ya no hay xD
Todo arreglado, va perfecto. Un gran paso para Pedro González Álvarez. Hay lo dejo...
Fallo
lo hago todo bien, o eso creo. el problema es que al iniciar el "hola mundo" en la psp, esta se congela, es decir, pantallazo negro, y se apaga solita.
Los comienzos son difíciles, pero cuando tu cuerpo supera su límite, la mente pide más. Recomiendo que se pasen todos por mi canal de youtube, en el cual pasarán un buen rato. Advierto que soy novato, asique por más razón pasense y dejen comentarios para que mejore. Mi canal se llama MrTalentCrazy
pon tu codigo
por favor.
No me funciona me devuelve al XMB tengo un psp go
No me funciona me devuelve al XMB tengo un psp go
Revise todo el nombre el codigo fuente y nada
woow ya pude hacer mi primer
woow ya pude hacer mi primer HOLA MUNDO
que buen tutorial :D
Que buen tuto
ahora que estoy aprendiendo luadev
¿Y e USB?
Weno, como veo que hay gurus del Lua aqui, me explayo:
llevo un monton de tiempo buscando como leer y escribir por el USB y nada... es posible esto con LUA? Y por usb me refiero al conector mini-usb, no al umd o flash como apuntan las intrucciones System.usbDiskModeActivate() , System.usbDevUMD() o System.usbDevFlashX()
De momento solo veo scripts para activar o desactivar, ¿pero como se lee o escribe?
Quiero hacer algo que lea los datos del GPS y grabarlos en la tarjeta formateandolos a psx y poder abrirlos con programas de mapas... Y no, no flipo :)
La programcion no es problema, ya llevo 15 años programando. Me he ojeado todos los manuales que he visto por internet de LUA, pero no encuentro algo como usb.read() por ejemplo. Pero si que hay un System.irdaRead() para IrDA o System.sioRead() para el "puerto" rs323...
en fin, alguien puede hacer algo de luz???
Pues no
Aún no hay nada para leer del usb en Lua... pero quien sabe, podría haber algo algún día ;)
gurus?
gurus? nos has dicho guiris?
no
Se refiere a gurús, como quien dice "masters" o "genios", pero na, aquí nadie es genio xDDD
Hombre
Hombre que facil es LUADEV y podemos hacer maravillas, me cambio a DEV!.
EDITO:
¿Por qué si me funciona así?
Y,¿Por qué así no?
Pq luadev te obliga a
Pq luadev te obliga a programar bien. xDDDDDDDDDDD
Nah, es extremadamente raro. Lo único que se me ocurre pensar es el formato en que pudiste guardar el archivo, (utf-8, windows binary, ascii..), y que no te coja los saltos de linea bien, si no, no caigo en que otra cosa puede ser. Solucion: programa indentando, y te resultará más facil leer tu code xDDDD.
Actualmente desarrollando nuestra web y UXCode : http://www.gcrew.es
no seria mala idea
que LDEV de "obligara" a programar bien. Como lo hace Python, aunque honestamente al inicio puede ser un dolor de cabeza xD, despues te acostumbras.
:)
Yo creo que no hay una "forma
Yo creo que no hay una "forma correcta" de programar. Cada cabeza es un mundo, con que el coder entienda sus scripts, yo creo que es suficiente (claro, a la hora que pida ayuda tendremos que pedir ayuda divina para leer el code xDD)
Que raro, que error te da?
Que raro, que error te da?
:S
Pues, es extraño, debería funcionar de las dos formas... a qué te refieres con que no funciona?
Se congela
Se congela y se apaga S:.
Estás usando notepad++?
Estás usando notepad++?
Sí
Sí.
Buenas tengo una pregunta el
Buenas tengo una pregunta
el LuaPlayer solo acepta el lengua de notepad++
o tambien puedo programar en java y reproducirlo en el LuaPlayer??
gracias
Lua Player solo reproduce
Lua Player solo reproduce lenguaje Lua. Notepad++ es el editor con el que escribimos el programa, pero puede ser tambien gedit o el bloc de notas.
Puedes programar un programa en java y portarlo a lua, pero nunca hacer que lo ejecute como java ya que estas utilizando un LuaPlayer, no la maquina de java. Son lenguas diferentes, como si estuvieras hablando en ingles y a algien que entiende ingles le hablas portugues, pues es lo mismo
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).
Pregunta
Dime que pasaria o la consecuencia si pogo asi
screen:print
esque mire en otra parte lo mismo pero benia con los dos puntos en lugar de un punto como tu pusiste .. screen.print
que puede pasar se pouede de los 2 ? o donde lo mire se equiboco ? ..
te agradeceria que me explicaras bien haha ..
estoy aprendiendo desde cero cada palabra que miro busco que significa y para que sirve etc etc . Gracias
Versiones distintas
Seguramente donde viste el "screen:print" es en algún tutorial de LuaHM.
Los dos puntos, se utilizan para pasar como primer argumento de una función (en la entrega nº 9 lo explico, también está en la documentación), es decir, que en LuaHM el primer argumento de print, no es la coordenada en X, sino, el "objeto" al que se va a imprimir, en este caso, la pantalla.
En LuaDev, es "screen.print", ya que se da por hecho que se imprime en pantalla, y el primer argumento de print en este intérprete, es la coordenada en X.
Como conclusión, si pones "screen:print" en LuaDev, seguramente dará error.
Saludos!
PSP FAT [5.00 M33-6] [6.60 ME] [Hard Moded] / Nintendo Wii [4.1U] [cIOS Hermes] [D2X cIOS] / iPhone 3G [4.2.1] [BB 05.13.04] [redsn0w] / iPod Touch 4 [6.1] [evasi0n]
07/05/10: Tuve el placer de llamarle con todo derecho "N00B" a molotovi xDDD
Recuerda: Sé el intérprete -_-
Gracias
Gracias me sacaste de dudas =) .. ya e aprendido algunas cosas mas boy por buen camino =)
=D
Grandioso por fin pude hacer un Hola mundo sin que me explicara RG xD, aunque ya habia echo un Button tester pero no aprendi nada xD jajaja.
Saludos y esperare con ansias el siguiente tutorial........
Eres grande Padre.
y siempre que quiera
poner el color deseado tiene que ser asi ?
ejemplo:
rojo = color.new(255,0,0)asi ?
mmm...
Dejar el off-topic, este tutorial no trata sobre colores, para eso está la siguiente entrega en el foro de programación.
Depende que colores
Depende que colores, busca como utilizar la gama RGB, ya que es la que se utiliza en LUA, mira:
Tienes que aprender a combinar esos 3 colores(gama RGB), para que te den otros colores.
Saludos.
HM7...
Eso, estás usando código de HM7, y además, lee el comentario que he dejado más arribita...
Lo siento
Lo siento, no sabía que en DEV se maneja diferente.
Saludos.