Ayuda con mi code(Lua DEV)( Solucionado )

Hola a todos:

Miren pues estoy usando las funciones en mi Code, quiero que reproduzca un sonido al presionar Equiz pero esto esta en una funcion, les explico con mi code.

--Variables, Funciones, Colores, ETC
rojo = color.new(255,0,0)
fondo = image.load("fondo.jpg")
sonido1 = sound.load("Sonido1.mp3")
function sonido1()
controls.read()
if controls.cross() then
	sound.play(sonido1)
end
end
while true do
	fondo:blit(0,0)
	screen.print(50,50,"Presiona Equiz",rojo)
	function sonido1()
	screen.flip()
end
end

No me marca error solo se congela, y otra pregunta, ¿Por qué tengo que poner dos end al final?, si no los pongo me marca error, pero tengo entendido yo, que solo debería llevar solo 3 end el codigo y no 4, pues los primeros 2, uno cierra el if y otro la funcion, el tercero cierra el while, pero el cuarto?, este que hace, gracias.

Saludos.

 


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 sault73

como hago que cuando inicie

como hago que cuando inicie el script se reprodusca el mp3 automaticamente

Imagen de Dioni0396

...

sonido = sound.load("Sonido.mp3")

sonido:play()

Imagen de markef

Si

Si solo es reproducir el sonido al iniciar script puedes optar también por...

sound.loop("ruta_archivo.formato")

Pd. Te ahorra escribir el load y el play.

Salu2. 


Dicen que soy programador... Eso dicen.

Imagen de Dioni0396

y para que sirve .loop?

el loop para que sirve?

Imagen de markef

Para

Para reproducir sonido, es muy util ya que el sonido al finalizar vuelve a comenzar. A parte de esto puedes añadir:

  • title (string)
  • artist (string)
  • album (string)
  • year (string)
  • comment (string)
  • genrecode (string)
  • genre (string)
  • track (string)
  • tracknumber (number)
  • length (number) (en segundos)
  • cover (boolean) (si tiene o no imagen)
  • imagetype (string) [ "JPG" \ "PNG" ] 

 
Copy/paste de la documentación
En resumidas cuentas, nombre de artista, año, portada... etc  

Edito: Por cierto, de la forma que pusiste lo de play creo que la música solo se reproduce una vez xd  (creo)

 


Dicen que soy programador... Eso dicen.

Imagen de Dioni0396

ok

ok

Imagen de NauTiluS1

Pues tienes varios

Pues tienes varios errores.

1- Tienes que darle un nombre a la funcion mas o menos asi "function nombre(tusonido)

2- Pones controls.read() fuera del bucle y dentro de una function y controls.read() tiene que ir dentro de while true do

3- Para llamar a la funcion seria asi

if controls.press("cross") then

nombredelafuncion(sonido)

end

4- No tienes que poner otra funcion dentro del bucle

Prueba a ver creeo que seria asi xD


Follow me twitter nautilus1_jmccu!!
Sony, ya a nadie le interesa tus UMD si alguien compra una psp es por nosotros los coders. Madura y has un FW que haga la diferencia y anime a las personas en comprar un PSP

Imagen de barney77

No es una funcion

No es una funcion la que esta dentro del bucle, en Hm así se llama alas funciones peor veo qe en DEV se es diferente y gracias.

Tienes un end de más. Borra

Tienes un end de más. Borra el de la última línea y prueba de nuevo.

Imagen de barney77

Sí lo hago y me marca error.

Perdón, no vi otro error que

Perdón, no vi otro error que tienes. Cuando llamas a tu función dentro de tu bucle, no debes usar la palabra function, sólo el nombre que le asignaste. Mira este ejemplo:

--Ejemplo de funciones, para Barney77
 
function Sonido()
 
     --Aquí va el código que quieras
 
end
 
while true do
 
     Sonido()     --Sólo uso el nombre de la función para llamarla :P
 
end

Imagen de barney77

Deja pruebo y te aviso

Deja pruebo y te aviso.

EDITO: Mira, borre el end del final y llame ala funcion como me dijiste, pero ahora cuando presiono equiz me marca esto:

linea:7

Argumento número 1 incorrecto para play. Se esperaba un objeto de tipo soun y se recibió un objeto de tipo function.

EDITO 2: Pues ya me sirvio, solo cambie el nombre del sonido y de la función.

Aquí mi code:

--Variables, Funciones, Colores, ETC
rojo = color.new(255,0,0)
fondo = image.load("fondo.jpg")
sonido = sound.load("sonido.mp3")
function reproducir()
if controls.cross() then
	sound.play(sonido)
end
end
while true do
	controls.read()
	fondo:blit(0,0)
	screen.print(50,50,"Presiona Equiz",rojo)
	reproducir()
	screen.flip()
end

Un saludo y gracias por la ayuda.

Cambia el nombre que le

Cambia el nombre que le asignaste a tu sonido cuando lo cargaste con sound.load. Ponle cualquier otro nombre, pero que no se llame como tus funciones ;)

EDITO: Genial :)

Imagen de iRVing_Prog

funcion sonido

sera algo asi:

--cargamos los sonidos que queramos con cualquier nombre
misonido = sound.load(misonido.mp3)
 
--funcion para reproducir cantidad indefinida de sonidos
function reproducir(nombresonido)
sound.play(nombresonido)
end
 
--bucle principal
while true do
controls.read()
 
--llamamos a la funcion despues de pulsar un boton y le mandamos como parametro el sonido que previamente cargamos
if controls.press("cross") then
reproducir(misonido)
end
 
screen.flip()
end

Espero te sirva. Salu2


 

Imagen de barney77

Pero

Pero, alado de function reproduci(nombresonido) va el nombre de la variable que carga el sonido, o va el nombre del sonido, y va entre comillas?

Imagen de NauTiluS1

Le puedes poner cualquier

Le puedes poner cualquier nombre y es sin comillas y antes de screen.flip() pones

tufuncion(nombrefuncion)

Para comprobarla

Imagen de iRVing_Prog

el nombre de la variable

el nombre de la variable =)

Imagen de NauTiluS1

Ups sorry no lo sabia :P

Ups sorry no lo sabia :P

Imagen de barney77

No se preocupen

No se preocupen, ya lo sulocione gracias a rober.

El erro era que al llamar la funcion tenia que quitar la palabra function y nadmas dejar el nombre.

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.