【cocos2dx】BGM・効果音を鳴らす

【cocos2dx】BGM・効果音を鳴らす
   

cocos2dxでは、音を簡単に鳴らすことができます。
その際に利用するのが、SimpleAudioEngineクラスです。

BGMを鳴らす

音楽データが準備できれば、以下のコードでBGMを鳴らすことができます。


//SimpleAudioEngineが利用できるように設定する
#include "SimpleAudioEngine.h"
using namespace CocosDenshion;



//init()内
//あらかじめ、音楽データを読み込む
SimpleAudioEngine::sharedEngine()->setBackgroundMusicVolume(0.5);
SimpleAudioEngine::sharedEngine()->preloadBackgroundMusic("field.mp3");



//音楽を再生する
SimpleAudioEngine::sharedEngine()->playBackgroundMusic(field.mp3);



あらかじめ、音楽データを読み込まなくても再生できますが、メモリーの負荷が高まる、また再生が遅れるなど起る場合があります。
ですので、preloadBackgroundMusic()を利用した方がいいでしょう。


BGMを止める

BGMを止める場合は、以下のコードを利用します。


//音楽を止める
SimpleAudioEngine::sharedEngine()->stopBackgroundMusic(true);




その他の処理

その他、色々なことができます。


//一時停止
SimpleAudioEngine::sharedEngine()->pauseBackgroundMusic();


//再開
SimpleAudioEngine::sharedEngine()->resumeBackgroundMusic();


//音楽を先頭に戻す
SimpleAudioEngine::sharedEngine()->rewindBackgroundMusic();


//音量を変更する
SimpleAudioEngine::sharedEngine()->setBackgroundMusicVolume(0.4)

//今、BGMが流れているかどうか

if(SimpleAudioEngine::sharedEngine()->isBackgroundMusicPlaying){


}else{


}




効果音を鳴らす

続きましては、効果音を鳴らす方法です。
だいたい以下のようなコードになります。


//SimpleAudioEngineが利用できるように設定する
#include "SimpleAudioEngine.h"
using namespace CocosDenshion;



//init()内
//あらかじめ、音楽データを読み込む
SimpleAudioEngine::sharedEngine()->setEffectsVolume(0.5);
SimpleAudioEngine::sharedEngine()->preloadEffect("beam.mp3");



//音楽を再生する
//
int soundID;
soundID = SimpleAudioEngine::sharedEngine()->playEffect(beam.mp3);



効果音も、事前に音楽データを読み込まなくても再生できます。


その他の処理

その他、色々なことができます。
その際に、どの効果音に処理をするかを、効果音を再生時に取得したint型の数字を利用します。


//効果音を止める
SimpleAudioEngine::sharedEngine()->stopEffect(soundID);


//一時停止
SimpleAudioEngine::sharedEngine()->pauseEffect(soundID);


//再開
SimpleAudioEngine::sharedEngine()->resumeEffect(soundID);




音楽データについて

cocos2dで利用していた際には,m4a(AAC規格)のデータを利用してできるだけデータの容量を小さくしていましたが、Andoridの場合はこれが利用できないみたいです。
ですので、Andorid用のデータを新たに用意するが、またMP3を利用した場合、両方のOSで音楽が再生できるみたいです。

この辺りのフォーマットについては注意が必要ですね。

Related Posts Plugin for WordPress, Blogger...