Hola, aqui os dejo un ejemplo de codigo en LUA para ps3 hecho por mi, lo unico que hace es cambiar entre 3 imagenes casi identicas que simulan un menu muy basico. Espero que a alguien le sirva de algo de ayuda. Sobra decir que cualquiera puede usar este codigo y modificarlo como quiera pero no apropiarselo mejor que sea libre jaja.
InitGFX(720,480); initPads(7); setsixaxis(0,1); UpPress1 = 0;--variable que vale 1 si se presiona la flecha arriba DownPress1 = 0;--variable que vale 1 si se presiona la flecha abajo screenx, screeny = screenRes(); menu = { }; menu[1] = surface();menu[1]:LoadIMG("menu/menu1.bmp"); -- cargamos en la superficie una imagen menu[2] = surface();menu[2]:LoadIMG("menu/menu2.bmp"); -- cargamos en la superficie una imagen menu[3] = surface();menu[3]:LoadIMG("menu/menu3.bmp"); -- cargamos en la superficie una imagen --cada imagen es de 720x480 pixels, como la resolucion de la pantalla elegida menuActual = 1; function actualizarBotones() if up(0) < 1 then--si no esta presionado arriba UpPress1 = 0; end if down(0) < 1 then--si no esta presionado abajo DownPress1 = 0; end end function moverMenu() if up(0) >= 1 and UpPress1 == 0 then--si arriba y no esta presionad UpPress1 = 1;--ya esta presionada if menuActual == 2 then menuActual = 1; end if menuActual == 3 then menuActual = 2; end end if down(0) >= 1 and DownPress1 == 0 then--si abajo y no esta presionada DownPress1 = 1;--ya esta presionada if menuActual == 2 then menuActual = 3; end if menuActual == 1 then menuActual = 2; end end end function mostrarMenu()--Creamos una funcion llamada screen_imagenes menu[menuActual]:setRectPos(0, 0); BlitToScreen(menu[menuActual]); end function acciones() if cross(0) >= 1 and menuActual == 1 then -- si presiona --Aqui codigo del juego end if cross(0) >= 1 and menuActual == 2 then -- si presiona --Aqui codigo de las opciones end if cross(0) >= 1 and menuActual == 3 then -- si presiona exit();--Terminamos la aplicacion end end while true do --Empezamos el bucle beginGFX() -- Iniciamos los graficos mostrarMenu(); moverMenu(); actualizarBotones(); acciones(); endGFX() -- Terminamos la seccion de graficos end
PD: No se como subir las imagenes que he usado como menu por si alguien quiere probarlo por si mismo lo unico que tiene que hacer es crearse 3 imagenes llamadas menu1.bmp,menu2.bmp,menu3.bmp y meterlas dentro de una carpeta llamada menu situada en el mismo sitio que el codigo y el ejecutable del emulador.
IO tengo el mio avanzadicimo pero
no lo e publicado aquí y no creo que estaría bien eso, ya ustedes están en esto, bien.
P.D quiero hablar algo con ustedes, es de otra opción en LuaPS3
Buenas, Eres libre de querer
Buenas,
Eres libre de querer publicar tu código fuente o no. Desde Scenebeta.com te animamos a que lo hagas. Compartir conocimiento hace que todos crezcamos más. Además, siempre es interesante ver como tu proyecto lo avanzan otros, qué implementan y cómo evoluciona. Pero ya te digo, el código es tuyo y harás igualmente bien en no publicarlo.
Respecto a lo que quieres hablar con nosotros, puedes mandarme un MP (click en mi nick y, en mi ficha, abajo de todo sale la opción de enviar un mensaje).
Un saludo!
www.SceneBeta.com recomienda Mozilla FireFox.
Buen tuto aunque como me
Buen tuto aunque como me gustaría un LuaDEV, sería la ostia en homebrew.
A portada! Gracias por el
A portada! Gracias por el aporte (a los 2).
De paso, he creado unos contenedores para tener un sitio donde ir guardando estos fragmentos de código. El tuyo es el primero (y el único de momento XD). A ver si la gente se anima y aporta su trocito de código :).
Yo si encuentro mi homebrew que hice para PSP en LUA, subiré el fragmento de cronómetro que hice :).
Un saludo!
www.SceneBeta.com recomienda Mozilla FireFox.
Entonces, cuál es el código
Entonces, cuál es el código más correcto? el más deuprado, el más limpio...?
Saludos.
Mmm
No se, en teoria seria el mio porque loren1 tenía un error, pero prueba los dos y mira el que no falle
qué fallo?
qué fallo?
Segun lo que vi, la funcion
Segun lo que vi, la funcion exit(), que en PS3LuaPlayer no existe y la funcion setsixasis() que si no se esta usando, pues se comenta para que no de error
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).
Unas cosillas
Creo que si no hay ninguna funcion que utilice el sixasis, no se necesita la funcion setsixasis(0,1), aunque se puede poner como comentario por si alguien la necesita, y en lua ni hace falta poner ; despues de cada comando, es decir, el código seria así:
Te he corregido algunas cosas. Para subir imagenes, puedes utilizar servidios como imageshack o photobucket
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).
Gracias
Hola, lo de exit() en el emulador por lo menos (Uso la version para Mac OS X) no da ningun error, lo que no puedes usar es un break ahi en la funcion acciones() ya que no hay ningun bucle que "romper" y daria un error de compilacion (de hecho a mi en el emulador no me ejecuta). Si no esta implementado en la ps3 eso ya lo desconozco, no tengo la suerte de poseer una ps3 xD, pero el break ahi esta mal ponerlo. Otra opcion es sacarlo de la funcion y meterlo dentro del while true, donde el break si se puede utilizar.
Lo de poner ";" despues de cada comando ya lo sabia jeje, pero como no molesta y vengo de otros lenguajes de programacion, prefiero no mal acostumbrarme a no poner ; xD
PD: Es dificil programar cuando cometes algun error y no te sale nada al respecto, a vosotros tambien os pasa?? Se puede hacer algo para saber por lo menos la linea del error? xD
Yo tambien estoy aprendiendo
Yo tambien estoy aprendiendo a programar y en lua estoy acustumbrado a no poner ; , pero en C si, bueno, esque si no lo pongo me va mal xddd.
Por lo del break, si que se puede poner, ya sea en el emulador o en la PS3, ya que la funcion la usas en un bucle, asi que el break romperia el bucle
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).
Muy raro
jaja esque yo poniendo el break dentro de la funcion me da error, ya te digo que es muy raro si me dices que a ti te funciona y siendo el mismo codigo debe ser cosa del emulador que funciona diferente, supongo que tu usaras el de windows y yo uso la version de Mac OS X, aunque no deberia haber ninguna diferencia en su uso. Tambien no he encontrado la manera de que se quede parado en el emulador el mensaje de error cuando te has equivocado al escribir codigo, la solucion de windows de hacer un .bat que llame al emulador y luego haga pause no funciona(adaptandolo claro a la sintaxis de Unix) y no he encontrado la manera de hacerlo xddd, supongo que hasta que no haya otro usuario que use el emulador en este SO me sentire solo xD.
Es verdad, yo utilizo
Es verdad, yo utilizo Windows, asi que puede que halla alguna diferencia
Bueno... y en definitiva...
Bueno... y en definitiva... cual funciona correctamente en PS3? que es lo que nos interesa :P.
Saludos.
Yo en windows, cuando
Yo en windows, cuando programaba en LUA para PS3 lo que hacía era crear un archivo .cmd que me ejecutase el emulador, y después de la línea del archivo cmd que ejecutaba el emulador le metia un "pause".
De esta forma, si encontraba un error el emulador no se cerraba, marcando la línea donde encontró el error. No sé si a ti te funcionará.
Un saludo.
PD: Si queires edita el codigo de aquí y cuando este corregido en su totalidad lo actualizo en el tutorial que he pasado a portada ;).
Un saludo.
www.SceneBeta.com recomienda Mozilla FireFox.