Jul 25

VN:F [1.9.8_1114]
Rating: 3.6/5 (5 votes cast)
VN:F [1.9.8_1114]
Rating: +4 (from 4 votes)
Tagged with:
Jan 20

Navegando por foros de Internet sobre progracmación de juegos con cocos2d me encuetro muchas preguntas sobre como usar sonidos en los juegos.
Con este pequeño artículo voy a explicar como se hace eso usando el SimpleAudioEngine (como su nombre indica es muy simple de usar).

Doy por hecho que ya teneís configurado el XCode y tenéis incluidos las APIs de cocos2d.

Para empezear a usar SimpleAudioEngine debeís incluirlo en su fichero fuente:

#import "SimpleAudioEngine.h"

SimpleAudioEngine es capaz de reproducir varios sonidos al mismo tiempo y diferencia lo que sería la música de fondo y los efectos de sonido (p.e. disparos, explosiones, etc.).

Para usar los sonidos (sea de fondo o de efecto) hay que precargarlos para evitar un pequeño retraso al reproducirlos por primera vez (si no están precargados, el motor perderá tiempo cargando y luego reproducirá).

Entonces, se recomienda tener cargado un sonido antes del primer uso.

Vamos a ver como se podemos integrar un sonido de fondo en nuestros juegos.

Sonidos de fondo

Como he dicho antes, primero hay que cargarlo (eso lo haremos en alguna parte del código antes de mostrar el escenario del juego):

[[SimpleAudioEngine sharedEngine] preloadBackgroundMusic:@"background.wav"];

Una vez hecho el preload podemos reproducirlo:

[[SimpleAudioEngine sharedEngine] playBackgroundMusic:@"background.wav"];
//O si queremos que la música de fondo se repita pode usar el siguiente método
[[SimpleAudioEngine sharedEngine] playBackgroundMusic:@"background.wav" loop:YES];

También podemos pausar, resumir y para la música:

[[SimpleAudioEngine sharedEngine] pauseBackgroundMusic]; //Pausa
[[SimpleAudioEngine sharedEngine] resumeBackgroundMusic]; //Seguir reproduciendo
[[SimpleAudioEngine sharedEngine] stopBackgroundMusic]; //Parar la reproducción

También puede controlar el volumen de la música. El varor del volumen ha de estar entre 0 y 1 (volumen máximo).

[SimpleAudioEngine sharedEngine].backgroundMusicVolume = 0.5;

Efectos de sonido (disparos, explosiones, etc.)

Como en el caso anterior tenemos que cargar el/los efecto/s.

[[SimpleAudioEngine sharedEngine] preloadEffect:@"bip.wav"];

Podemos reproducir o para un efecto con:

[[SimpleAudioEngine sharedEngine] playEffect:@"bip.wav"]; //reproducir
[[SimpleAudioEngine sharedEngine] playEffect:@"bip.wav"]; //parar

Para liberar la memoria se usa:

[[SimpleAudioEngine sharedEngine] unloadEffect:@"bip.wav"];

Y finalmente se puede controlar el volumen con (min 0, max 1):

[SimpleAudioEngine sharedEngine].effectsVolume = 0.9;

Hay mas métodos que puede ser útiles a parte de los aquí citados. Pueden ver todos los métodos disponibles en la API de SimpleAudioEngine.

VN:F [1.9.8_1114]
Rating: 5.0/5 (2 votes cast)
VN:F [1.9.8_1114]
Rating: +1 (from 1 vote)
Tagged with:
preload preload preload