Lo mas esperado por muchos (puedo oler el icono de carpeta quemada xD): Sonido...
Creo que no hay que explicar que es el sonido, porque la gran mayoria sabemos que es, y los sordos no creo que lo usen en sus aplicaciones...
(MIS DISCULPAS SI EL COMENTARIO ANTERIRO OFENDE A ALGUIEN)
Asi que vamos a empezar...
1. Sonido simple
Los sonidos, los tendremos que convertir a raw antes de trabajar con ellos, explico como.
Usaremos un programa llamado switch.
Click aqui para descargar
En el instalador instalad solo switch, el resto lo quitais.
Saldra una pantalla así:
Clickaremos en Add Files(s) (arriba) y buscaremos los sonidos que queramos.
Despues, abajo, en Output folder ponemos donde queremos que heche lo convertido (por defecto mis documentos).
Ahora, en Output format seleccionamos .raw, y clickamos en Encoder settings.
Lo ponemos como en la siguiente imagen:
Le damos a ok y se cerrara la ventanita.
Ahora, en la barrita de arriba, donde hay un rayo que pone convert, clickamos hay.
Esperamos a que convierta y nos habra hechado los .raw donde se lo indicamos (Por defecto en mis documentos).
Y ya esta convertido.
Ahora crearemos otra carpeta, (si hemos hecho todos los tutos deveria de ser ej16) y configuramos todo para empezar.
DENTRO DE LA CARPETA ej16 (o la que sea) crearemos otra carpeta llamada data.
EN LA CARPETA
DATA meteremos los .raw que hemos sacado antes.
yo he usado una parte de una cancion de tote
, y lo he llamado sonido.raw
Bien, ahora vamos al código:
// Includes
#include
// Include de las PA_Lib
#include "sonido.h" //Incluyo el sonido, hay que poner el nombre del .raw
// Funcion main
int main(int argc, char ** argv)
{
PA_Init(); // Iniciamos PA_Lib
PA_InitVBL(); // Iniciamos VBL
PA_InitSound(); //Iniciamos el sonido
// Reproducimos el sonido
PA_PlaySimpleSound(0, // canal (hay 15, osea, 15 sonidos simultaneos puedes meter)
sonido //nombre del archivo raw
);
// Bucle
while (1)
{
PA_WaitForVBL();
}
return 0;
} // Fin de main
Y nada mas abrir el binario, se escucharia el sonido, ya podemos hacer que se escuche cuando pulsas la tactil, pulsas un boton, etc...
miniejemplo:
while (1)
{ // Si tocamos la pantalla reproducimos el sonido...
if (Stylus.Newpress) PA_PlaySimpleSound(0, sonido);
PA_WaitForVBL();
}
return 0;
} // Fin de main
Y asi cada vez que tocas la pantalla se reproduce el sonido, asi que cuando se acabe, vuelves a tocar y se vuelve a reproducir.
NOTA: En los emuladores se escucha muy rapido, pero en la ds se escucha perfecto.
Descarga:
http://www.megaupload.com/?d=5YYWMK4SCaptura:
No la pongo, porque la pantalla en si esta negra, y en la captura no ves el sonido xDDDD
2. Volumen Creamos lo mismo que la otra vez, yo uso el mismo sonido, si quereis cambiar alla vosotros.
Ahora vamos ha cambiar el volumen con el pad, y asi vais aprendiendo cosas.
Código:
// Includes
#include
// Include de las PA_Lib
#include "sonido.h" //Incluyo el sonido
// a volumen le damos un valor inicial de 50
u8 volumen = 50;
// Funcion main
int main(int argc, char ** argv)
{
PA_Init(); // Iniciamos las PA_Lib
PA_InitVBL(); // Iniciamos VBL
PA_InitText(0, 0);
PA_InitSound(); // Iniciamos el sonido
// Reproducimos el sonido
PA_PlaySimpleSound(0, sonido);
// Bucle
while (1)
{
//Mostramos con el texto el volumen
PA_OutputText(0, 10, 12, /*OJO, en este codigo, los valores de la posicion del texto es ditinta,
con poner en coordenadas 50, 50 nos salimos de la pantalla (no me apetece buscar el maximo, pero es poco)*/
"El volumen es : %03d", //hacemos que nos muestre el volumen
volumen //volumen que es 50
);
volumen += //el volumen, que de momento es 50, sube...
Pad.Held.Up //...si pulsamos el pad para arriva
- // y baja...
Pad.Held.Down; // ...si pulsamos del pad para abajo
PA_SetSoundVol // cambiamos el volumen
(volumen //el volumen seria 50
);
PA_WaitForVBL();
}
return 0;
} // Fin de main
Unas cuantas cosas, primero, que si no os leisteis lo que aconseje leer en el tutorial 6, no os vais a enterar muy bien del codigo, aun asi, he explicado vastantes cosas.
Lo segundo, en un emulador el sonido no cambia, asi que no lo podeis apreciar si no teneis la ds.
Lo tercero, el cambio de volumen es muy poco en cada numero, pero si lo poneis a 000 (no se oye) y despues a 255 (lo maximo) se nota de sobra xD.
Descarga:
Click aquíCaptura:
3. Parar/Reproducir Pues crearemos otro ejercicio, con el mismo sonido (o con otro) en la carpeta data y empezamos.
Vamos a acer que si pulsamos la A, se reproduzca el sonido, y si pulsamos la B, se pare.
Vamos alla:
// Includes
#include
// Include de las PA_Lib
#include "sonido.h" // Incluimos el sonido
// Funcion main
int main(int argc, char ** argv)
{
PA_Init(); // Iniciamos las PA_Lib
PA_InitVBL(); // Iniciamos VBL
PA_InitSound(); //Iniciamos sonido
// Bucle
while (1)
{
//Si pulsamos A...
if (Pad.Newpress.A)
{
PA_PlaySimpleSound(0, sonido);//...reproducimos el sonido
}
if (Pad.Newpress.B)//Si pulsamos B...
{
PA_StopSound(//...paramos el sonido...
0); //...que se reproduce en el canal 0
}
PA_WaitForVBL();
}
return 0;
} // Fin de main
Y con esto concluye el tutorial de sonido. Ya llevamos 18 ejercicios... Todavia aguantais eh, no os rendis... xD
Ala, me retiro asta dentro de un año xD (mas bien unas 9h).
Descarga:
Click aquí
Captura:
Aqui tampoco hay...
--------------------------------TAREA-----------------------------------------
Bueno, quiero ver como lo haceis xD, os voy a acer una especie de chantaje.
Quero, que cuando pulses un sprite con la tactil, pase al frame 1 y suene el sonido, y cuando le vuelvas a tocar,que pase al frame 0(primero) y que se pare la musica.
El que lo consigua, (que cuelgue el codigo y el binario) le dejo eleguir tuto.
Salu2