Anuncios Google

Programacion en lua. Error!

Estoy haciendo un homebrew en lua y en el PC me funciona pero con la PSP y el Eboot de LuaPlayerHM 7 me sale esto:

Error: System/System.lua:26 Image.load: Error loading image

Press Start to restart

 

En esta linea no hay ningun error lo he comprobado.

Que alguien me ayude porfavor! Gracias.


Anuncios Google

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.
Imagen de recoco

No

No si al final te acabaré de hacer el juego. Vamos por partes:

  • if tema == 1 then
    imgmenu = temablau
    end

    if tema == 2 then
    imgmenu = temaverd
    end

Para que te complicas, primero le dices al bucle que cargue el tema 1 con la iamgen (imgmenu = temablau) y después le dices que haga "blit" del imgmenu. Borra este párrafo, así cargará directamente el "estatJoc == menu".


Image Hosted by ImageShack.us 

Imagen de ktix007

perdon ya no te molesto

perdon ya no te molesto mas. Muchas gracias por intentar ayudarme. Smile

 

Imagen de recoco

lua

¿Te funciona?

Imagen de ktix007

no. Lo de la variable nil i

no. Lo de la variable nil i collectgarbage() no funciona porque vuelve a aparecer el primer error...

Error: System/System.lua:26 Image.load: Error loading image

Press Start to restart

 

Imagen de recoco

lua

¿Y si en vez de cargar "26 notas musicales" imprimes en pantalla las notas musicales?

Imagen de ktix007

quieres decir con letras?

quieres decir con letras?

Imagen de recoco

lua

Si.

Imagen de ktix007

ok lo hare pero tardare un

ok lo hare pero tardare un poco. gracias.

A una cosa puedo cargar WAV en luaplayer hm7?

Imagen de recoco

lua

Se puede reproducir WAV en cualquier luaplayer a partir del luaplayer. Utiliza esto solamente en luaplayerHM:

System.oaenable()

mi = sound.load( "mi.wav", false)

mi:play() 

 


Image Hosted by ImageShack.us 

Imagen de ktix007

Ya esta y funciona pero va

Ya esta y funciona pero va muy lento... Puede ser por los WAV?

Imagen de recoco

WAV

Prueba con los MP3.

Imagen de ktix007

pero se puede hacer con los

pero se puede hacer con los MP3 que los llame una variable como los wav? Ej: sonido = Sound.load("sons/so.wav")

sonido:play()

pero algo parecido con MP3?

Imagen de recoco

Mp3

Los Mp3 los reproduces por la manera que ya te expliqué abajo.

Imagen de ktix007

psomi =

psomi = Mp3me.load("sons/piano/mi.mp3",false)

Imagen de recoco

Mal

Está mal el código. ¿Te has mirado los tutoriales? No se pone ni false ni true, y la raiz de la carpeta se empieza por "./".

Mp3me.load("./sons/piano/mi.mp3")
Mp3me.play()


Image Hosted by ImageShack.us 

Imagen de ktix007

No sale esto en el tuto k he

No sale esto en el tuto k he mirado yo

Imagen de ktix007

Pongo esto por ejemplo:

Pongo esto por ejemplo:

temablau = Image.load("imatges/menu/menublau.png")
temablau = nil

i me dice Error: System.lua: 71: bad argument #2 to 'blit' (image expected, got nil)

 

es por eso de nil?

Imagen de recoco

Nil

Pues pon la variable "nil" y collectgarbage() debajo de screen.flip().

Imagen de Arkanist

Hombre es que haber.

Claro que te da nil la imagen, porque has cargado una imagen, i al instante la borras, con razon te da nil. lo de temablau=nil, debes ponerlo cuando quieras limpiar la memoria, pero si quieres imprimir una imagen y antes le das nil, te dara error.

Imagen de ktix007

Me lo puedes poner en el

Me lo puedes poner en el codigo:   http://rapidshare.com/files/146652542/System.rar.html
Imagen de Arkanist

Haber es realmente sencillo.

Simeplemente, o pones una funcion para que vacie la memoria cuando tu lo necesites, o no pongas lo de nil.

Imagen de ktix007

pero es k si no pongo nil no

pero es k si no pongo nil no me carga las imagenes porque hay muchas y lo otro no entiendo donde lo tengo que poner.

Imagen de recoco

Código

Pon la variable "nil" y collectgarbage() debajo de screen.flip().

Imagen de ktix007

en el bucle principal?

¿en el bucle principal? ¿asi?

while true do

if tema == 1 then
imgmenu = temablau
end

if tema == 2 then
imgmenu = temaverd
end

if estatJoc == "menu" then
mostramenu()
end

if estatJoc == "guitarra" then
mostraguitarra1()
end

if estatJoc == "piano" then
mostrapiano()
end

if estatJoc == "opcions" then
mostraopcions()
end

screen.flip()
collectgarbage()
temablau = nil
temaverd = nil
blankp = nil
do1p = nil
rep = nil
mip = nil
fap = nil
solp = nil
lap = nil
sip = nil
dop = nil
blankg = nil
mig = nil
sig = nil
solg = nil
reg = nil
lag = nil
mi2g = nil
oldpad = pad
end

Imagen de recoco

Si

Si, pero el collectgarbage() debajo de de "mi2g = nil". Di si te funcionó.

Imagen de ktix007

tampoco: Error:

tampoco:

Error: System.lua: 52: bad argument #2 to 'blit' (image expected, got nil)

Creo k es mas facil que ponga el codigo y que mires si hay algun problema:

--***Colors***
blanc = Color.new(255,255,255)
blau = Color.new(0,0,255)
negre = Color.new(0,0,0)
vermell = Color.new(255,0,0)
verd = Color.new(38,187,3)
verdfosc = Color.new(17,74,4)

--***Imatges***
temablau = Image.load("imatges/menu/menublau.png")
temaverd = Image.load("imatges/menu/menuverd.png")
blankp = Image.load("imatges/piano/blank.png")
do1p = Image.load("imatges/piano/do1.png")
rep = Image.load("imatges/piano/re.png")
mip = Image.load("imatges/piano/mi.png")
fap = Image.load("imatges/piano/fa.png")
solp = Image.load("imatges/piano/sol.png")
lap = Image.load("imatges/piano/la.png")
sip = Image.load("imatges/piano/si.png")
dop = Image.load("imatges/piano/do.png")
blankg = Image.load("imatges/guitarra/blank.png")
mig = Image.load("imatges/guitarra/mi.png")
sig = Image.load("imatges/guitarra/si.png")
solg = Image.load("imatges/guitarra/sol.png")
reg = Image.load("imatges/guitarra/re.png")
lag = Image.load("imatges/guitarra/la.png")
mi2g = Image.load("imatges/guitarra/mi2.png")

--***Altres***
dofile("./escribe.lua")
imgmenu = temablau
colorbarra = blau
imatgeguitarra = blankg
imatgeguitarra2 = blankg2
imatgepiano =  blankp
estatJoc = "menu"
tema = 1
oldpad = Controls.read()
posselector = 1
posselector2 = 1
selector = { imagen = Image.createEmpty(260,30), x = 108,y = 100 }
selector.imagen:clear(colorbarra)
selector2 = { imagen = Image.createEmpty(260,30), x = 108,y = 100 }
selector2.imagen:clear(colorbarra)
barra = { imatge = Image.createEmpty(480,10), x = 0,y = 262 }
barra.imatge:clear(colorbarra)

--***Menú***
function mostramenu()
screen:clear()
pad = Controls.read()
screen:blit(0,0,imgmenu)
screen:blit(selector.x,selector.y,selector.imagen)
escribe( screen, 110, 100, "Tocar la guitarra", blanc, 25 )
escribe( screen, 110, 130, "Tocar el piano", blanc, 25 )
escribe( screen, 110, 160, "Opcions", blanc, 25 )
screen:blit(barra.x,barra.y,barra.imatge)
screen:print(165,263,"Press X to select",blanc)

if posselector == 1 then
selector.y = 77
end
if posselector == 2 then
selector.y = 107
end
if posselector == 3 then
selector.y = 137
end
if pad:up() and oldpad:up() ~= pad:up() and posselector > 1 then
posselector = posselector - 1
end
if pad:down() and oldpad:down() ~= pad:down() and posselector <= 3 then
posselector = posselector + 1
end
if pad:cross() and oldpad:cross() ~= pad:cross() and posselector == 1 then
screen:clear()
estatJoc = "guitarra"
end
if pad:cross() and oldpad:cross() ~= pad:cross() and posselector == 2 then
screen:clear()
estatJoc = "piano"
end
if pad:cross() and oldpad:cross() ~= pad:cross() and posselector == 3 then
screen:clear()
imgmenu = nil
estatJoc = "opcions"
end
end

--***Guitarra***
function mostraguitarra1()
screen:clear()
pad = Controls.read()
screen:blit(0,0,imatgeguitarra)
screen:blit(barra.x,barra.y,barra.imatge)
screen:print(95,263,"Press START to Go back to the menu",blanc)

if pad:cross() and oldpad:cross() ~= pad:cross() then
imatgeguitarra = mig
end

if pad:cross() then
Mp3me.load("./sons/guitarra/mi.mp3")
Mp3me.play()
Mp3me.stop()
end

if pad:circle() and oldpad:circle() ~= pad:circle() then
imatgeguitarra = sig
end

if pad:circle() then
Mp3me.load("./sons/guitarra/si.mp3")
Mp3me.play()
Mp3me.stop()
end

if pad:square() and oldpad:square() ~= pad:square() then
imatgeguitarra = solg
end

if pad:square() then
Mp3me.load("./sons/guitarra/sol.mp3")
Mp3me.play()
Mp3me.stop()
end

if pad:triangle() and oldpad:triangle() ~= pad:triangle() then
imatgeguitarra = reg
end

if pad:triangle() then
Mp3me.load("./sons/guitarra/re.mp3")
Mp3me.play()
Mp3me.stop()
end

if pad:r() and oldpad:r() ~= pad:r() then
imatgeguitarra = lag
end

if pad:r() then
Mp3me.load("./sons/guitarra/la.mp3")
Mp3me.play()
Mp3me.stop()
end

if pad:l() and oldpad:l() ~= pad:l() then
imatgeguitarra = mi2g
end

if pad:l() then
Mp3me.load("./sons/guitarra/mi2.mp3")
Mp3me.play()
Mp3me.stop()
end

if pad:start() then
screen:clear()
temablau = nil
temaverd = nil
estatJoc = "menu"
end
end

--***Piano***
function mostrapiano()
screen:clear()
pad = Controls.read()
screen:blit(0,0,imatgepiano)
screen:blit(barra.x,barra.y,barra.imatge)
screen:print(95,263,"Press START to go back to the menu",blanc)

if pad:cross() and oldpad:cross() ~= pad:cross() then
imatgepiano = dop
end

if pad:cross() and oldpad:cross() ~= pad:cross() then
Mp3me.load("./sons/piano/do.mp3")
Mp3me.play()
Mp3me.stop()
end

if pad:circle() and oldpad:circle() ~= pad:circle() then
imatgepiano = sip
end

if pad:circle() and oldpad:circle() ~= pad:circle()  then
Mp3me.load("./sons/piano/si.mp3")
Mp3me.play()
Mp3me.stop()
end

if pad:square() and oldpad:square() ~= pad:square() then
imatgepiano = lap
end

if pad:square() and oldpad:square() ~= pad:square() then
Mp3me.load("./sons/piano/la.mp3")
Mp3me.play()
Mp3me.stop()
end

if pad:triangle() and oldpad:triangle() ~= pad:triangle() then
imatgepiano = solp
end

if pad:triangle() and oldpad:triangle() ~= pad:triangle() then
Mp3me.load("./sons/piano/sol.mp3")
Mp3me.play()
Mp3me.stop()
end

if pad:up() and oldpad:up() ~= pad:up() then
imatgepiano = fap
end

if pad:up() and oldpad:up() ~= pad:up() then
Mp3me.load("./sons/piano/fa.mp3")
Mp3me.play()
Mp3me.stop()
end

if pad:down() and oldpad:down() ~= pad:down() then
imatgepiano = mip
end

if pad:down() and oldpad:down() ~= pad:down() then
Mp3me.load("./sons/piano/mi.mp3")
Mp3me.play()
Mp3me.stop()
end

if pad:right() and oldpad:right() ~= pad:right() then
imatgepiano = rep
end

if pad:right() and oldpad:right() ~= pad:right() then
Mp3me.load("./sons/piano/re.mp3")
Mp3me.play()
Mp3me.stop()
end

if pad:left() and oldpad:left() ~= pad:left() then
imatgepiano = do1p
end

if pad:left() and oldpad:left() ~= pad:left() then
Mp3me.load("./sons/piano/do1.mp3")
Mp3me.play()
Mp3me.stop()
end

if pad:start() then
screen:clear()
estatJoc = "menu"
end
end

--***Opcions***
function mostraopcions()
screen:clear()
pad = Controls.read()
screen:blit(0,0,imgmenu)
screen:blit(barra.x,barra.y,barra.imatge)
screen:print(100,263,"Press O to go back to the menu",blanc)
escribe( screen, 190, 100, "Tema:", blanc, 25 )
escribe( screen, 262, 100,tema, blanc, 25 )

if pad:right() and oldpad:right() ~= pad:right() and tema < 2 then
tema = tema + 1
end

if pad:left() and oldpad:left() ~= pad:left() and tema == 2 and tema > 1 then
tema = tema - 1
end

if pad:circle() then
screen:clear()
estatJoc = "menu"
end
end

--***Bucle Principal***
while true do

if tema == 1 then
imgmenu = temablau
end

if tema == 2 then
imgmenu = temaverd
end

if estatJoc == "menu" then
mostramenu()
end

if estatJoc == "guitarra" then
mostraguitarra1()
end

if estatJoc == "piano" then
mostrapiano()
end

if estatJoc == "opcions" then
mostraopcions()
end

screen.flip()
oldpad = pad
temablau = nil
temaverd = nil
blankp = nil
do1p = nil
rep = nil
mip = nil
fap = nil
solp = nil
lap = nil
sip = nil
dop = nil
blankg = nil
mig = nil
sig = nil
solg = nil
reg = nil
lag = nil
mi2g = nil
collectgarbage()
end

Imagen de Ulind

Buenas

Puede que le hayas cambiado el nombre o hayas quitado la imagen que intentaste cargar en ese script. Porque eso puede pasar mucho cuando programas en lua (cosas que se te escapan xD). Ojo con las mayusculas y minusculas que puede que la imagen lo hayas nombrado con mayuscula y lo hayas puesto en el script con minuscula (o al reves xP)

Tambien cuidado con lo de cambiar el formato de la imagen solo cambiando el nombre (ejemplo: Imagen.png le haces cambiar nombre y la llamas Imagen.jpg) Eso a mi me daba error. LOs formatos de imagen cambialos con programas como paint 

Pues creo que uno de estos debe ser

Saludo ;)


subir imagenes

Imagen de ktix007

ya lo he comprobado todo y

ya lo he comprobado todo y no me funciona

 

Imagen de recoco

Código

Error:

  • Si te cargan todas las imágenes hasta la linia 26 (imagen lag) quiere decir que hay un "bloqueo de memoria". ¿Qué quiero decir? En lua solamente se puede cargar 25 imágenes como mucho. Utiliza:
  1. Da variables "nil" a las imágenes.
  2. collectgarbage()

Image Hosted by ImageShack.us 

Imagen de ktix007

soy muy nuevo en esto

soy muy nuevo en esto ¿puedes explicarmelo mas facilmente?

Imagen de recoco

Código

Lua:

  • Lua puede cargar 25 imágenes más o menos.
  • Para vaciar la "memoria" normalmente le damos valor "nil" a todas las imágenes y al final de cada "blit" de imagen se pone "collectgarbage()".

Ejemplo:

temablau = Image.load("imatges/menu/menublau.png")

temablau = nil

while true do

screen:clear()

screen:blit(0,0,menublau)

collectgarbage()

System.sleep(100)

end


Esto lo intentas aplicar a tú código.

 

 


Image Hosted by ImageShack.us 

Imagen de ktix007

Ahora dice Error:

Cry Ahora dice

Error: System/System.lua:40: error loading sound

Press START to restart

¿Hay algun problema con el codigo? ¿o los mp3 deben tener unas caracteristicas especificas?

Imagen de recoco

Mp3

Cambia el formato de "WAV" a "MP3".

Imagen de ktix007

ya son MP3 :-)  

ya son MP3 :-)

 

Imagen de recoco

Mp3

Entonces el código está mal:

gsomi = Sound.load("sons/guitarra/mi.wav",false)

Imagen de ktix007

el k tienes tu si pero el

el k tienes tu si pero el mio no. es k me he ekivocado, te he pasado el antiguo.

gsomi = Sound.load("sons/guitarra/mi.mp3",false)

Imagen de recoco

Mal

El código que pones no existe para "Mp3". Lo correcto sería:

Mp3me.load("mi.mp3")
Mp3me.play()

No te olvides del Mp3me.stop() despues de reproducir un "Mp3".


Image Hosted by ImageShack.us 

Imagen de ktix007

Ahora: Error:

Cry Ahora:

Error: System/Systen.lua:66: can't open sound file ms0:/PSP/GAME/PSPMS2.0/sons/piano/mi.mp3

Press START to restart

!!!!!!!!!!!!!!!!

Imagen de recoco

Mp3

¿Está el archivo "mi.mp3" en la carpeta piano? Pon el código que has utilizado.

Edito: Continua arriba.

Imagen de ktix007

muchas muchas gracias ahora

muchas muchas gracias ahora lo intento

Imagen de recoco

Código

Pon el código para que podamos ayudarte.

Imagen de ktix007

http://rapidshare.com/files/1

1

a mi tambien me pasa eso

a mi tambien me pasa eso pero en la linea 11 que es justo la primera imagen que cargo, osea que no es problema del tope de 25 imagenes, lo he revisado todo y esta bien escrito, la imagen existe y esta en la ruta correcta, no lo entiendo, en la pagina de lua player hm tambn hay mucha gente quejandose de este problema, algunas imagenes las carga bien pero otras no, aunque sean del mismo tipo, es inexplicable, si alguien tiene la solucion que postee por favor.

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.