Cocos2d-X 学习笔记 17 Cocos2dx 下对sqlite3 的简单封装

  1. typedef struct {  
  2.     unsigned int soundId;  
  3.     const char* soundFilePath;  
  4. }Sound;  
  5.   
  6.   
  7. typedef struct {  
  8.      const char* musicFilePath;  
  9. } Music;  
  10.   
  11. /* 
  12.  * 注意,Andoird下面只支持.ogg 
  13.  * 
  14.  */  
  15.   
  16. static Music bgMusic =  
  17. {  
  18.      "audio/mainbgmusic.ogg"  
  19. };  
  20. static Sound testSound =  
  21. {  
  22.     0,  
  23.     "audio/clicksound.ogg"  
  24. };  
  25.   
  26. class AudioManager  
  27. {  
  28. public:  
  29.     /*  注意,此方法在进入游戏前调用  */  
  30.     static void init();  
  31.       
  32. public:  
  33.       
  34.     /* 预加载 */  
  35.     static void preLoadBgMusic(Music& music);  
  36.     static void preLoadSound(Sound& sound);  
  37.       
  38.     /* 播放 */  
  39.     static void playMusic(Music& music,bool loop = true);  
  40.     static void playSound(Sound& sound,bool loop = false);  
  41.       
  42.     /* 暂停 */  
  43.     static void pauseMusic(Music& music);  
  44.     static void pauseSound(Sound& sound);  
  45.       
  46.     /* 停止 */  
  47.     static void stopMusic(Music& music,bool release = true);  
  48.     static void stopSound(Sound& sound);  
  49.     static void stopAllSound();  
  50.       
  51.       
  52.     /* 恢复 */  
  53.     static void resumeMusic();  
  54.       
  55.     /* 全部结束 */  
  56.     static void end();  
  57. };  
  58. </pre><br>  
  59. <pre></pre>  
  60. <br>  
  61. <pre name="code" class="cpp"><pre name="code" class="cpp">void AudioManager::init()  
  62. {  
  63.     /* 例子 */  
  64.     preLoadBgMusic(bgMusic);  
  65.     preLoadSound(testSound);  
  66. }  
  67.   
  68.   
  69.   
  70. /********************************************************* 
  71.                 一些方法的封装 
  72.  *********************************************************/  
  73. void AudioManager::preLoadBgMusic(Music& music)  
  74. {  
  75.     using namespace CocosDenshion;  
  76.     using namespace cocos2d;  
  77.     music.musicFilePath = CCFileUtils::sharedFileUtils()->fullPathFromRelativePath(music.musicFilePath);  
  78.       
  79.     CCLOG(music.musicFilePath);  
  80.   
  81.     SimpleAudioEngine::sharedEngine()->preloadBackgroundMusic(music.musicFilePath);  
  82. }  
  83.   
  84. void AudioManager::preLoadSound(Sound& sound)  
  85. {  
  86.     using namespace CocosDenshion;  
  87.     using namespace cocos2d;  
  88.       
  89.     sound.soundFilePath = CCFileUtils::sharedFileUtils()->fullPathFromRelativePath(sound.soundFilePath);  
  90.       
  91.      SimpleAudioEngine::sharedEngine()->preloadEffect(sound.soundFilePath);  
  92. }  
  93.   
  94. void AudioManager::playMusic(Music& music,bool loop/* default = true */)  
  95. {  
  96.     using namespace CocosDenshion;  
  97.       
  98.     /* 先判断是否已经在播放,如果在播放,则直接返回 */  
  99.     if (SimpleAudioEngine::sharedEngine()->isBackgroundMusicPlaying()) {  
  100.         return;  
  101.     }  
  102.       
  103.     SimpleAudioEngine::sharedEngine()->playBackgroundMusic(music.musicFilePath, loop);  
  104. }  
  105.   
  106.   
  107. void AudioManager::playSound(Sound& sound,bool loop/* default is false */)  
  108. {  
  109.     using namespace CocosDenshion;  
  110.     sound.soundId = SimpleAudioEngine::sharedEngine()->playEffect(sound.soundFilePath, loop);  
  111. }  
  112.   
  113.   
  114. void AudioManager::pauseMusic(Music& music)  
  115. {  
  116.     using namespace CocosDenshion;  
  117.     SimpleAudioEngine::sharedEngine()->pauseBackgroundMusic();  
  118. }  
  119.   
  120. void AudioManager::pauseSound(Sound& sound)  
  121. {  
  122.     using namespace CocosDenshion;  
  123.     SimpleAudioEngine::sharedEngine()->pauseEffect(sound.soundId);  
  124. }  
  125.   
  126.   
  127. void AudioManager::stopMusic(Music& music,bool release/* default is true */)  
  128. {  
  129.     using namespace CocosDenshion;  
  130.     SimpleAudioEngine::sharedEngine()->stopBackgroundMusic(release);  
  131. }  
  132.   
  133. void AudioManager::stopSound(Sound& sound)  
  134. {  
  135.     using namespace CocosDenshion;  
  136.     SimpleAudioEngine::sharedEngine()->stopEffect(sound.soundId);  
  137. }  
  138.   
  139. void AudioManager::stopAllSound()  
  140. {  
  141.     using namespace CocosDenshion;  
  142.     SimpleAudioEngine::sharedEngine()->stopAllEffects();  
  143. }  
  144.   
  145. void AudioManager::resumeMusic()  
  146. {  
  147.     using namespace CocosDenshion;  
  148.     SimpleAudioEngine::sharedEngine()->resumeBackgroundMusic();  
  149. }  
  150.   
  151. void AudioManager::end()  
  152. {  
  153.     using namespace CocosDenshion;  
  154.   
  155.     SimpleAudioEngine::sharedEngine()->end();  
  156. }  
  157. 注意:
  158.   进入游戏后,开始初始化资源调用 
  159.  
  160.  /* 初始化游戏音效 */
  161.     AudioManager::init(); 



  162. 游戏切换到后台调用:
  163. AudioManager::pauseMusic(bgMusic); 
  164.   

  165. 游戏重新切换回前台 
  166. AudioManager::resumeMusic(); 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值