游戏音效是游戏中非常重要的一个部分,下面我们就来谈一下关于cocos2dx 关闭音效的问题以及详解,音乐主要可以分为游戏中的长时间的背景音乐和短的音效两种,可以为我们的游戏增加各种效果。

Cocos2d-x支持多种音乐格式mp3,wav等音乐格式
1.背景音乐
要使用一个音乐,首先要预加载这个音乐,预加载的方法如下
SimpleAudioEngine::sharedEngine()->preloadBackgroundMusic( CCFileUtils::fullPathFromRelativePath(MUSIC_FILE) );
MUSIC_FILE就是音乐文件相对Res文件夹的相对路径
然后就可以播放了,播放的方法如下
SimpleAudioEngine::sharedEngine()->playBackgroundMusic(std::string(CCFileUtils::fullPathFromRelativePath

(MUSIC_FILE)).c_str(), true);
第一个参数中的MUSIC_FILE就是音乐文件相对Res文件夹的相对路径,然后再转换为绝对路径,第二个参数就是是否循环播放,由于是

背景音乐,我们定为true

其他函数


  1. SimpleAudioEngine::sharedEngine()->stopBackgroundMusic();//停止背景音乐,可以代一个布尔型参数,表示是否释放音乐文件
  2. SimpleAudioEngine::sharedEngine()->pauseBackgroundMusic();//暂停背景音乐
  3. SimpleAudioEngine::sharedEngine()->rewindBackgroundMusic();//重头调用背景音乐
  4. SimpleAudioEngine::sharedEngine()->isBackgroundMusicPlaying()//返回布尔型参数,是否在放着背景音乐
  5. SimpleAudioEngine::sharedEngine()->setBackgroundMusicVolume(0.5);//设置音量0.0-1.0


2.音效

使用音效,和使用音乐类似,也需要预加载,用法如下

  1. SimpleAudioEngine::sharedEngine()->preloadEffect( CCFileUtils::fullPathFromRelativePath(EFFECT_FILE) );
  2. EFFECT_FILE就是音乐的相对Res文件夹的相对路径
  3. 然后播放就可以了
  4. m_nSoundId=SimpleAudioEngine::sharedEngine()->playEffect(std::string(CCFileUtils::fullPathFromRelativePath

  5. (EFFECT_FILE)).c_str());
  6. m_nSoundId=SimpleAudioEngine::sharedEngine()->playEffect(std::string(CCFileUtils::fullPathFromRelativePath

  7. (EFFECT_FILE)).c_str(), true);
和背景音乐一样,第二个参数是可选的,如果是true就是循环播放,否则就是只播一次

其他函数

  1. SimpleAudioEngine::sharedEngine()->stopEffect(m_nSoundId);//停止音效,可以选择单独停掉一个音效,通过创建时的m_nSoundId

  2. 停止
  3. SimpleAudioEngine::sharedEngine()->stopAllEffects();//停止全部音效
  4. SimpleAudioEngine::sharedEngine()->pauseEffect(m_nSoundId);//暂停单个音效
  5. SimpleAudioEngine::sharedEngine()->resumeEffect(m_nSoundId);//重新开始音效
  6. SimpleAudioEngine::sharedEngine()->pauseAllEffects();//暂停全部音效
  7. SimpleAudioEngine::sharedEngine()->resumeAllEffects();//重新开始全部音效
  8. SimpleAudioEngine::sharedEngine()->setEffectsVolume(0.5);//设置音效音量
  9. SimpleAudioEngine::sharedEngine()->unloadEffect(std::string(CCFileUtils::fullPathFromRelativePath(EFFECT_FILE)).c_str

());// 卸载音效
最后要记住,在程序不需要音乐时,要SimpleAudioEngine::sharedEngine()->end();释放sharedEngine()