Pues que si pongo un dofile después de otro: dofile("tupadre.lua"); dofile("aquetemeto.lua"), me llevará automáticamente a 'tupadre.lua', y yo necesito cargar dos luas a la vez. En 2 lenguajes. ¿Cómo te lo comes?
Si cuando haces un dofile no encuentra ningún bucle, carga en ram todo lo que haya que cargar y vuelve a donde has hecho el dofile, por ejemplo esto es útil si usas un script para las funciones, le haces un dofile y ya las tienes cargadas es ram.
cursor = image.load("cursor.png")
x =240
y =136function mouse(cx,cy,cxx,cyy)if x > cx and x < cxx and y > cy and y < cyy thenreturntrueelsereturnfalseendendwhiletruedo
controls.read()
cursor:blit(x,y)if controls.analogx >60then x = x +2endif controls.analogx < -60then x = x -2endif controls.analogy >60then y = y +2endif controls.analogy < -60then y = y -2end
screen.flip()end
PD: La función de mouse devuelve true o false si está entre las coordenadas que tu indiques, por ejemplo:
....
if mouse(50,25,100,75)and controls.press("cross")then
....
end
....
Aquí si las coordenadas del cursor están entre 50 y 100 para X y 25 y 75 para Y devolver´true, si no devolverá false.
Me dice 'unexpected symbol '+' en línea 22'. Bien, lo que yo quiero es un ratón que al dar cruz en un icono en el menú vaya a dofile("") y cargue otro script. Como en miniapple o cristal vista.
Para lo del error pásame el script. Te dejo uno de ejemplo
cursor = image.load("cursor.png")
x =240
y =136function mouse(cx,cy,cxx,cyy)if x > cx and x < cxx and y > cy and y < cyy thenreturntrueelsereturnfalseendendwhiletruedo
controls.read()
cursor:blit(x,y)if controls.analogx >60then x = x +2endif controls.analogx < -60then x = x -2endif controls.analogy >60then y = y +2endif controls.analogy < -60then y = y -2end--Esto es lo que hace que vaya a otro script--PD: Las coordenadas las he puesto al azarif controls.press("cross")and mouse(50,70,60,80)thendofile("script2.lua")end
screen.flip()end
Para saber que coordenadas hay que poner debes medir desde 0,0 hasta el primer punto del icono, y luego desde 0,0 hasta el segundo punto del icono.
PD: Con punto me refiero a las esquinas (1º-Superior-izquierda y 2º-Inferior-derecha)
Ya tengo hecha la introducción y poner las imágenes. Una duda: lo que sé es que dofile("") te manda a un archivo y sólo sé poner más scripts para cargar imágenes varias y si lo pongo en el bucle cargar más fotos, no hace nada.
A ver, cargues una imagen en un script o otro, a menos que la liberes, esta imágen estará cargada en la RAM, por lo tanto no hace falta cargarla mas de una vez. Lo que estas haciendo es una atrocidad, piensa que Lua lee les lineas UNA A UNA y las vas interpretando a medida que va leyendo, por lo que si en el script1.LUA no se encuentra otro bucle, una vez el intérprete llegue al final del archivo, saldrá del archivo y seguirá interpretando después del dofile("script1.LUA"). Una vez termine el while termine el ciclo, volverá a llegar al dofile("script1.LUA") y volverá a pasar lo mismo, así infinitamente...
Y qué tienes en el otro script? Porque con ese code como lo tienes sólo obtendrás un pantallazo (como un parpadeo) y después ejecutará el otro script.
Lo que quiero dar a entender es... que dependiendo de tus codes, es como funcionará el dofile. Por ejemplo, forma muy útil de usarlos es para cargar librerías, digamos...
libreria.lua:
function GUI(back)
back:blit(0,0)
draw.fillrect(0,0,480,20,color.new(0,0,0,125))
screen.print(470-screen.textwidth(os.date("%I:%M %p")),5,os.date("%I:%M %p"))end
script.lua
dofile("libreria.lua")--cargo las funciones de la librería
img = image.load("una img xD.png")whiletruedo
controls.read()
GUI(img)--usando una función de la librería
screen.flip()end
Como podrás notar, en mi librería tengo declarada una función (que dibuja una interfaz muy sencilla), que después de cargar la librería puedo usar como si fuera parte de mi script principal. Ojo, que aquí yo he puesto sólo una, pero pueden ser las funciones que quieras, o variables ( tablas, imágenes, sonidos... lo que sea).
Otro uso muy común del dofile es en los menus. Por ejemplo, digamos que tengo estos scripts para mis créditos:
script.lua
if controls.press("cross")and seleccionado ==3thendofile("creditos.lua")end--es un code feo, ya sé, yo en realidad usaría tablas xD
creditos.lua
fondo = image.load("algo.png")whiletruedo
controls.read()
fondo:blit(0,0)
screen.print(10,10,"Esto es un sample de los créditos\nGracias a X por su ayuda\nA Y por sus gráficos\nA Scenebeta por inducirme a programar...")if controls.press("circle")then
fondo:free()dofile("script.lua")end
screen.flip()end
Nótese que el script creditos.lua es completamente independiente del principal, tiene su propio bucle, carga sus imágenes... incluso le puse un dofile para poder regresar al script principal (que se supone me estará bliteando el menu principal).
He hecho algo más complejo y a la cuenta la vieja. Con el script inicial he cargado una imagen cada una y con 8 scripts cargando pasando de uno a otro. Y con screen.waitVblankStart le doy tiempo. Me va de pm. Mira que inútil ese string...Hay que usar la cabeza y todo saldrá sin enterarse. ¡Dios, qué ilusión! Saludos a los códers.
¿Y si lo hago automático para cargar las imágenes nada más empezar y llegar al menú? ¿Cómo sería? [splash = Image.load("splash.png") ; while true do ; screen:blit(0,0,splash) ; screen.flip() ; end] Sería cargar una imagen, pero si con screen.waitVblankStart() puedo ponerle tiempo y no sé.
Cuidado, no debes mezclar funciones entre intérpretes. Si vas a usar LuaDEV, la función screen.blit NO EXISTE, se usa image.blit (revisa la documentación otras 3 veces).
El screen.waitvblankstart, depende mucho de cómo lo uses, pero casi siempre sólo sirve para alentar el script (una tontería en la mayoría de los casos). Un ejemplo de cómo NO DEBE USARSE:
img = image.load("una imagen.png")whiletruedo
img:blit(0,0)--También podría haber puesto image.blit(0,0,img), es lo mismo
screen.waitvblankstart()--Inútil...
screen.flip()end
Que en LuaDev nooooo.
Y compilarlos en .iso no puede ser porque sería un engorro. 'Encriptar' sería. Como el Fishell o BermudaCS9.
Mmm...
Pues tendrás que currarte una función para encriptar los archivo...
Pero seguro que hay un prograaaama.
Buff, si no lo han hecho los mejores códers, yo voy por el suelo.
Compilalo
Con luac
Saludos!
???
???
Suponiendo que tienes Lua instalado en tu
pc puedes compilarlo usando el comando luac miarchivo.lua
Saludos!
No, ya. Creo que hay otra
No, ya.
Creo que hay otra manera.
Sería juntar todos los archivos en una ISO, y después pasarlo por FAKE NP, pero no sé si funcionará, es cuestión de probar.
Mmm...
Pero eso solo solo firma la aplicación, no la compila, y cualquiera puede extraer los archivos de una ISO
Pero te la firma en un único
Pero te la firma en un único eboot.
¿Hay algún string de HM que
¿Hay algún string de HM que imite al image:blend?
String? Supongo que te
String? Supongo que te referirás a una función (un String es una cadena de caracteres), en fin, HM no tiene blend, pero se puede simular parcialmente.
No en LuaDev.
¿Cómo puedo hacer que una imagen vaya hacia la derecha y se repita? Simulando a las ondas.
Con Algo de Pensar y Algunas
Con Algo de Pensar y Algunas imagenes para los efectos . :)
Buff.
Pues no sé yo si podré hacer ondas de fondo con LuaDev R0 y el menú en LuaHM. Aunque 2 dofile seguidos me redireccionará al primero.
mundosupernova.mex.tl El universo del homebrew y PSP.
Tres proyectos en progreso...
"Aunque 2 dofile seguidos me
"Aunque 2 dofile seguidos me redireccionará al primero."
A que te refieres?
:(
Pues que si pongo un dofile después de otro: dofile("tupadre.lua"); dofile("aquetemeto.lua"), me llevará automáticamente a 'tupadre.lua', y yo necesito cargar dos luas a la vez. En 2 lenguajes. ¿Cómo te lo comes?
mundosupernova.mex.tl El universo del homebrew y PSP.
Tres proyectos en progreso...
Si cuando haces un dofile no
Si cuando haces un dofile no encuentra ningún bucle, carga en ram todo lo que haya que cargar y vuelve a donde has hecho el dofile, por ejemplo esto es útil si usas un script para las funciones, le haces un dofile y ya las tienes cargadas es ram.
Mucho trabajo.
Las ondas las tengo hechas, y el menú lo tengo aparte. ¡Necesito cargar 2 scripts!
¿A que te refieres con
¿A que te refieres con cargar? ¿Cargar en la RAM imágenes/sonidos/variables/funciones?
...
Mandarme a dos scripts a la vez.
Imposible
Las instrucciones se ejecutan una por una, no puedes cargar/ejecutar dos scripts a la vez, debes encontrar una manera de mezclarlos (siempre la hay).
Pues la última ya:
¿Cómo puedo ejecutar un eboot en luadev?
Con la función
os.runeboot(ruta)
Gracias, de verdad, gracias.
Si no funciona, me pego un tiro. ¿Y la documentación está completa o no?
La de LuaDEV no (de HM ni
La de LuaDEV no (de HM ni idea).
Supuestamente
si... Creo que está incompleta... Pero supuestamente está completa...
No se olviden que Tooxicoo
No se olviden que Tooxicoo esta Completando la documentacion (De LuaDev), creo que es la mas completa hasta ahora.
...
¿Cómo te voy a pasar el script si lo hago desde PSP? Es el mismo quel tuyo. Trabajo con LuaPlayer v0.20.
Veréis...
No me acuerdo de cómo hacer un cursor que se desplaze por la pantalla. La imagen ya la tengo, pero lo de pad controls.read() no me queda muy claro.
mundosupernova.mex.tl El universo del homebrew y PSP.
Tres proyectos en progreso...
By Aitor
Aquí te dejo un ejemplo de cómo se podría hacer:
PD: La función de mouse devuelve true o false si está entre las coordenadas que tu indiques, por ejemplo:
Aquí si las coordenadas del cursor están entre 50 y 100 para X y 25 y 75 para Y devolver´true, si no devolverá false.
Sígueme en Twitter: @Aitor_db
Eso es exactamente lo que he hecho.
A lo meior era que me faltaba then return true. Gracias, lo probaré.
By Aitor
No hay de qué, espero que te sea de utilidad y que aportes grandes HBs a esta comunidad.
Problema:
Me dice 'unexpected symbol '+' en línea 22'. Bien, lo que yo quiero es un ratón que al dar cruz en un icono en el menú vaya a dofile("") y cargue otro script. Como en miniapple o cristal vista.
mundosupernova.mex.tl El universo del homebrew y PSP.
Tres proyectos en progreso...
By Aitor
Para lo del error pásame el script. Te dejo uno de ejemplo
Para saber que coordenadas hay que poner debes medir desde 0,0 hasta el primer punto del icono, y luego desde 0,0 hasta el segundo punto del icono.
PD: Con punto me refiero a las esquinas (1º-Superior-izquierda y 2º-Inferior-derecha)
Sígueme en Twitter: @Aitor_db
Otra cosa:
¿Es verdad que LuaDev es capaz de interpretar dos bucles?
No entiendo exactamente que
No entiendo exactamente que quieres decir. ¿Dos bucles a la vez o como?
quiza quiere decir
un for dentro dentro de un while
...
O creo que un if '' then.
un if " then
es una sentencia no un bucle.
No entender esa diferencia puede traerte problemas.
Un saludo.
Como todo lenguaje
Como siempre debe ser
¡Yes!
Ya tengo hecha la introducción y poner las imágenes. Una duda: lo que sé es que dofile("") te manda a un archivo y sólo sé poner más scripts para cargar imágenes varias y si lo pongo en el bucle cargar más fotos, no hace nada.
El código es:
splash = Image.load("splash.png")
while true do
splash:blit("0,0,splash")
screen.waitVblankStart()
screen.flip()
dofile("script1.LUA")
end
Sí, ya sé que es en LuaHM y no LuaDev R0.
mundosupernova.mex.tl El universo del homebrew y PSP.
Tres proyectos en progreso...
A ver, cargues una imagen en
A ver, cargues una imagen en un script o otro, a menos que la liberes, esta imágen estará cargada en la RAM, por lo tanto no hace falta cargarla mas de una vez. Lo que estas haciendo es una atrocidad, piensa que Lua lee les lineas UNA A UNA y las vas interpretando a medida que va leyendo, por lo que si en el script1.LUA no se encuentra otro bucle, una vez el intérprete llegue al final del archivo, saldrá del archivo y seguirá interpretando después del dofile("script1.LUA"). Una vez termine el while termine el ciclo, volverá a llegar al dofile("script1.LUA") y volverá a pasar lo mismo, así infinitamente...
Y qué tienes en el otro
Y qué tienes en el otro script? Porque con ese code como lo tienes sólo obtendrás un pantallazo (como un parpadeo) y después ejecutará el otro script.
Lo que quiero dar a entender es... que dependiendo de tus codes, es como funcionará el dofile. Por ejemplo, forma muy útil de usarlos es para cargar librerías, digamos...
libreria.lua:
script.lua
Como podrás notar, en mi librería tengo declarada una función (que dibuja una interfaz muy sencilla), que después de cargar la librería puedo usar como si fuera parte de mi script principal.
Ojo, que aquí yo he puesto sólo una, pero pueden ser las funciones que quieras, o variables ( tablas, imágenes, sonidos... lo que sea).
Otro uso muy común del dofile es en los menus. Por ejemplo, digamos que tengo estos scripts para mis créditos:
script.lua
creditos.lua
Nótese que el script creditos.lua es completamente independiente del principal, tiene su propio bucle, carga sus imágenes... incluso le puse un dofile para poder regresar al script principal (que se supone me estará bliteando el menu principal).
:) No.
He hecho algo más complejo y a la cuenta la vieja. Con el script inicial he cargado una imagen cada una y con 8 scripts cargando pasando de uno a otro. Y con screen.waitVblankStart le doy tiempo. Me va de pm. Mira que inútil ese string...Hay que usar la cabeza y todo saldrá sin enterarse. ¡Dios, qué ilusión! Saludos a los códers.
mundosupernova.mex.tl El universo del homebrew y PSP.
Tres proyectos en progreso...
Ah, con controles.
¿Y si lo hago automático para cargar las imágenes nada más empezar y llegar al menú? ¿Cómo sería? [splash = Image.load("splash.png") ; while true do ; screen:blit(0,0,splash) ; screen.flip() ; end] Sería cargar una imagen, pero si con screen.waitVblankStart() puedo ponerle tiempo y no sé.
mundosupernova.mex.tl El universo del homebrew y PSP.
Tres proyectos en progreso...
Cuidado, no debes mezclar
Cuidado, no debes mezclar funciones entre intérpretes. Si vas a usar LuaDEV, la función screen.blit NO EXISTE, se usa image.blit (revisa la documentación otras 3 veces).
El screen.waitvblankstart, depende mucho de cómo lo uses, pero casi siempre sólo sirve para alentar el script (una tontería en la mayoría de los casos). Un ejemplo de cómo NO DEBE USARSE:
luadev
no necesita que le pongas mayuscula al inicio de las funciones y en vez de : usa .
¿Cómo...?
¿Cómo puedo cargar varias imágenes para la introducción de mi HB? Si fuera con algún efecto os lo agradecería.
Eso no es una duda, eso es
Eso no es una duda, eso es pedir que te hagan el código...
Tío.
Si no sé hacerlo cómo quieres que lo haga.