Cocos2d-X 学习笔记 17 Cocos2dx 下对sqlite3 的简单封装
2014-10-23 11:01
393 查看
typedef struct {
unsigned int soundId;
const char* soundFilePath;
}Sound;
typedef struct {
const char* musicFilePath;
} Music;
/*
* 注意,Andoird下面只支持.ogg
*
*/
static Music bgMusic =
{
"audio/mainbgmusic.ogg"
};
static Sound testSound =
{
0,
"audio/clicksound.ogg"
};
class AudioManager
{
public:
/* 注意,此方法在进入游戏前调用 */
static void init();
public:
/* 预加载 */
static void preLoadBgMusic(Music& music);
static void preLoadSound(Sound& sound);
/* 播放 */
static void playMusic(Music& music,bool loop = true);
static void playSound(Sound& sound,bool loop = false);
/* 暂停 */
static void pauseMusic(Music& music);
static void pauseSound(Sound& sound);
/* 停止 */
static void stopMusic(Music& music,bool release = true);
static void stopSound(Sound& sound);
static void stopAllSound();
/* 恢复 */
static void resumeMusic();
/* 全部结束 */
static void end();
};
</pre><br>
<pre></pre>
<br>
<pre name="code" class="cpp"><pre name="code" class="cpp">void AudioManager::init()
{
/* 例子 */
preLoadBgMusic(bgMusic);
preLoadSound(testSound);
}
/*********************************************************
一些方法的封装
*********************************************************/
void AudioManager::preLoadBgMusic(Music& music)
{
using namespace CocosDenshion;
using namespace cocos2d;
music.musicFilePath = CCFileUtils::sharedFileUtils()->fullPathFromRelativePath(music.musicFilePath);
CCLOG(music.musicFilePath);
SimpleAudioEngine::sharedEngine()->preloadBackgroundMusic(music.musicFilePath);
}
void AudioManager::preLoadSound(Sound& sound)
{
using namespace CocosDenshion;
using namespace cocos2d;
sound.soundFilePath = CCFileUtils::sharedFileUtils()->fullPathFromRelativePath(sound.soundFilePath);
SimpleAudioEngine::sharedEngine()->preloadEffect(sound.soundFilePath);
}
void AudioManager::playMusic(Music& music,bool loop/* default = true */)
{
using namespace CocosDenshion;
/* 先判断是否已经在播放,如果在播放,则直接返回 */
if (SimpleAudioEngine::sharedEngine()->isBackgroundMusicPlaying()) {
return;
}
SimpleAudioEngine::sharedEngine()->playBackgroundMusic(music.musicFilePath, loop);
}
void AudioManager::playSound(Sound& sound,bool loop/* default is false */)
{
using namespace CocosDenshion;
sound.soundId = SimpleAudioEngine::sharedEngine()->playEffect(sound.soundFilePath, loop);
}
void AudioManager::pauseMusic(Music& music)
{
using namespace CocosDenshion;
SimpleAudioEngine::sharedEngine()->pauseBackgroundMusic();
}
void AudioManager::pauseSound(Sound& sound)
{
using namespace CocosDenshion;
SimpleAudioEngine::sharedEngine()->pauseEffect(sound.soundId);
}
void AudioManager::stopMusic(Music& music,bool release/* default is true */)
{
using namespace CocosDenshion;
SimpleAudioEngine::sharedEngine()->stopBackgroundMusic(release);
}
void AudioManager::stopSound(Sound& sound)
{
using namespace CocosDenshion;
SimpleAudioEngine::sharedEngine()->stopEffect(sound.soundId);
}
void AudioManager::stopAllSound()
{
using namespace CocosDenshion;
SimpleAudioEngine::sharedEngine()->stopAllEffects();
}
void AudioManager::resumeMusic()
{
using namespace CocosDenshion;
SimpleAudioEngine::sharedEngine()->resumeBackgroundMusic();
}
void AudioManager::end()
{
using namespace CocosDenshion;
SimpleAudioEngine::sharedEngine()->end();
}
注意:
进入游戏后,开始初始化资源调用
/* 初始化游戏音效 */
AudioManager::init();
游戏切换到后台调用:
AudioManager::pauseMusic(bgMusic);
游戏重新切换回前台
AudioManager::resumeMusic();
unsigned int soundId;
const char* soundFilePath;
}Sound;
typedef struct {
const char* musicFilePath;
} Music;
/*
* 注意,Andoird下面只支持.ogg
*
*/
static Music bgMusic =
{
"audio/mainbgmusic.ogg"
};
static Sound testSound =
{
0,
"audio/clicksound.ogg"
};
class AudioManager
{
public:
/* 注意,此方法在进入游戏前调用 */
static void init();
public:
/* 预加载 */
static void preLoadBgMusic(Music& music);
static void preLoadSound(Sound& sound);
/* 播放 */
static void playMusic(Music& music,bool loop = true);
static void playSound(Sound& sound,bool loop = false);
/* 暂停 */
static void pauseMusic(Music& music);
static void pauseSound(Sound& sound);
/* 停止 */
static void stopMusic(Music& music,bool release = true);
static void stopSound(Sound& sound);
static void stopAllSound();
/* 恢复 */
static void resumeMusic();
/* 全部结束 */
static void end();
};
</pre><br>
<pre></pre>
<br>
<pre name="code" class="cpp"><pre name="code" class="cpp">void AudioManager::init()
{
/* 例子 */
preLoadBgMusic(bgMusic);
preLoadSound(testSound);
}
/*********************************************************
一些方法的封装
*********************************************************/
void AudioManager::preLoadBgMusic(Music& music)
{
using namespace CocosDenshion;
using namespace cocos2d;
music.musicFilePath = CCFileUtils::sharedFileUtils()->fullPathFromRelativePath(music.musicFilePath);
CCLOG(music.musicFilePath);
SimpleAudioEngine::sharedEngine()->preloadBackgroundMusic(music.musicFilePath);
}
void AudioManager::preLoadSound(Sound& sound)
{
using namespace CocosDenshion;
using namespace cocos2d;
sound.soundFilePath = CCFileUtils::sharedFileUtils()->fullPathFromRelativePath(sound.soundFilePath);
SimpleAudioEngine::sharedEngine()->preloadEffect(sound.soundFilePath);
}
void AudioManager::playMusic(Music& music,bool loop/* default = true */)
{
using namespace CocosDenshion;
/* 先判断是否已经在播放,如果在播放,则直接返回 */
if (SimpleAudioEngine::sharedEngine()->isBackgroundMusicPlaying()) {
return;
}
SimpleAudioEngine::sharedEngine()->playBackgroundMusic(music.musicFilePath, loop);
}
void AudioManager::playSound(Sound& sound,bool loop/* default is false */)
{
using namespace CocosDenshion;
sound.soundId = SimpleAudioEngine::sharedEngine()->playEffect(sound.soundFilePath, loop);
}
void AudioManager::pauseMusic(Music& music)
{
using namespace CocosDenshion;
SimpleAudioEngine::sharedEngine()->pauseBackgroundMusic();
}
void AudioManager::pauseSound(Sound& sound)
{
using namespace CocosDenshion;
SimpleAudioEngine::sharedEngine()->pauseEffect(sound.soundId);
}
void AudioManager::stopMusic(Music& music,bool release/* default is true */)
{
using namespace CocosDenshion;
SimpleAudioEngine::sharedEngine()->stopBackgroundMusic(release);
}
void AudioManager::stopSound(Sound& sound)
{
using namespace CocosDenshion;
SimpleAudioEngine::sharedEngine()->stopEffect(sound.soundId);
}
void AudioManager::stopAllSound()
{
using namespace CocosDenshion;
SimpleAudioEngine::sharedEngine()->stopAllEffects();
}
void AudioManager::resumeMusic()
{
using namespace CocosDenshion;
SimpleAudioEngine::sharedEngine()->resumeBackgroundMusic();
}
void AudioManager::end()
{
using namespace CocosDenshion;
SimpleAudioEngine::sharedEngine()->end();
}
注意:
进入游戏后,开始初始化资源调用
/* 初始化游戏音效 */
AudioManager::init();
游戏切换到后台调用:
AudioManager::pauseMusic(bgMusic);
游戏重新切换回前台
AudioManager::resumeMusic();
相关文章推荐
- Cocos2d-X 学习笔记 18 Cocos2dx 下对sqlite3 的简单封装
- cocos2d-x学习笔记17:记录存储2:SQLite基本使用
- cocos2d-x学习笔记(17)--简单游戏实例1--双枪手
- Cocos2d-X 学习笔记 17 Cocos2dx Jason数据解析
- cocos2d-x学习笔记17:记录存储2:SQLite基本使用 推荐
- cocos2d-x学习笔记17:记录存储2:SQLite基本使用
- cocos2d-x学习笔记17:记录存储2:SQLite基本使用
- cocos2d-x 菜鸟学习笔记十六(简单的碰撞检测 实践篇 中)
- cocos2d-x学习笔记1:cocos2dx 3.0 安装及项目创建
- cocos2d-x-3.1 文本输入框简单使用 (coco2d-x 学习笔记九)
- COCOS2DX学习笔记 windows下cocos2d-x的环境配置
- cocos2d-x的Sptrite Action SpriteFrame Animation texture使用的简单方法---学习笔记
- cocos2d-x学习笔记04:简单动画
- cocos2d-x学习笔记3:CCTextFieldTTF的使用和再封装
- Cocos2dx学习之---使用Sqlite3的笔记
- cocos2d-x3.0开发笔记 物理引擎封装Physics深入学习
- cocos2d-x学习笔记1:简单动画
- Cocos2dx 下对sqlite3 的简单封装
- cocos2d-x学习笔记(二)Eclipse+cdt实现cocos2dx跨平台解决方案(Android版)
- cocos2d-x 菜鸟学习笔记十三(简单的碰撞检测)