#include "HelloWorldScene.h"
#include "SimpleAudioEngine.h"
using namespace cocos2d;
using namespace CocosDenshion;
//根据不同平台使用预编译索引不同音频文件
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
#define EFFECT_FILE "effect2.ogg"
#elif( CC_TARGET_PLATFORM == CC_PLATFORM_MARMALADE)
#define EFFECT_FILE "effect1.raw"
#else
#define EFFECT_FILE "effect1.wav"
#endif
#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
#define MUSIC_FILE "music.mid"
#elif (CC_TARGET_PLATFORM == CC_PLATFORM_BLACKBERRY)
#define MUSIC_FILE "background.ogg"
#else
#define MUSIC_FILE "background.mp3"
#endif
std::string items[] = {
"play background music",
"stop background music",
"pause background music",
"resume background music",
"rewind background music",
"is background music playing",
"play effect",
"play effect repeatly",
"stop effect",
"unload effect",
"add background music volume",
"sub background music volume",
"add effects volume",
"sub effects volume",
"pause effect",
"resume effect",
"pause all effects",
"resume all effects",
"stop all effects"
};
CCScene* HelloWorld::scene()
{
CCScene * scene = NULL;
do
{
// 'scene' is an autorelease object
scene = CCScene::create();
CC_BREAK_IF(! scene);
// 'layer' is an autorelease object
HelloWorld *layer = HelloWorld::create();
CC_BREAK_IF(! layer);
// add layer as a child to scene
scene->addChild(layer);
} while (0);
// return the scene
return scene;
}
// on "init" you need to initialize your instance
bool HelloWorld::init()
{
bool bRet = false;
do
{
CC_BREAK_IF(! CCLayer::init());
CCMenu* m_pItmeMenu = CCMenu::create();
CCSize s = CCDirector::sharedDirector()->getWinSize();
int m_nTestCount = sizeof(items) / sizeof(items[0]);
for (int i = 0; i < m_nTestCount; i++){
CCLabelTTF* label = CCLabelTTF::create(items[i].c_str(), "Arial", 15);
CCMenuItemLabel* pMenuItem = CCMenuItemLabel::create(label, this, menu_selector(HelloWorld::menuBack));
m_pItmeMenu->addChild(pMenuItem, i);
pMenuItem->setPosition( CCPointMake(0, (s.height*0.5-20- (i + 1) * 15) ));
}
addChild(m_pItmeMenu,0,100);
//预加载音乐和音效
SimpleAudioEngine::sharedEngine()->preloadBackgroundMusic(MUSIC_FILE);
SimpleAudioEngine::sharedEngine()->preloadEffect(EFFECT_FILE);
//设置默认音量
SimpleAudioEngine::sharedEngine()->setEffectsVolume(0.5);
SimpleAudioEngine::sharedEngine()->setBackgroundMusicVolume(0.5);
bRet = true;
} while (0);
return bRet;
}
void HelloWorld::menuBack(CCObject * pSender){
CCMenuItem* pMenuItem = (CCMenuItem *)(pSender);
int nIdx = pMenuItem->getZOrder() ;
switch(nIdx)
{
case 0:
//播放背景音乐
SimpleAudioEngine::sharedEngine()->playBackgroundMusic(MUSIC_FILE , true);
break;
case 1:
//停止背景音乐
SimpleAudioEngine::sharedEngine()->stopBackgroundMusic();
break;
case 2:
//暂停背景音乐
SimpleAudioEngine::sharedEngine()->pauseBackgroundMusic();
break;
case 3:
//继续播放背景音乐
SimpleAudioEngine::sharedEngine()->resumeBackgroundMusic();
break;
case 4:
//后退背景音乐
SimpleAudioEngine::sharedEngine()->rewindBackgroundMusic();
break;
case 5:
//背景音乐是否正在播放
if (SimpleAudioEngine::sharedEngine()->isBackgroundMusicPlaying()){
CCLOG("背景音乐正在播放");
}else{
CCLOG("背景音乐没在播放");
}
break;
case 6:
//播放音效,并且得到此音效的ID
effectId = SimpleAudioEngine::sharedEngine()->playEffect(EFFECT_FILE);
break;
case 7:
//重复播放音效
effectId = SimpleAudioEngine::sharedEngine()->playEffect(EFFECT_FILE, true);
break;
case 8:
//停止音效播放
SimpleAudioEngine::sharedEngine()->stopEffect(effectId);
break;
case 9:
//释放音效
SimpleAudioEngine::sharedEngine()->unloadEffect(EFFECT_FILE);
break;
case 10:
//增加背景音乐的音量
SimpleAudioEngine::sharedEngine()->setBackgroundMusicVolume(SimpleAudioEngine::sharedEngine()->getBackgroundMusicVolume() + 0.1f);
break;
case 11:
//减少背景音乐的音量
SimpleAudioEngine::sharedEngine()->setBackgroundMusicVolume(SimpleAudioEngine::sharedEngine()->getBackgroundMusicVolume() - 0.1f);
break;
case 12:
//增加音效的音量
SimpleAudioEngine::sharedEngine()->setEffectsVolume(SimpleAudioEngine::sharedEngine()->getEffectsVolume() + 0.1f);
break;
case 13:
//减少音效的音量
SimpleAudioEngine::sharedEngine()->setEffectsVolume(SimpleAudioEngine::sharedEngine()->getEffectsVolume() - 0.1f);
break;
case 14:
//暂停音效
SimpleAudioEngine::sharedEngine()->pauseEffect(effectId);
break;
case 15:
//继续播放音效
SimpleAudioEngine::sharedEngine()->resumeEffect(effectId);
break;
case 16:
//暂停所有音效
SimpleAudioEngine::sharedEngine()->pauseAllEffects();
break;
case 17:
//继续所有音效
SimpleAudioEngine::sharedEngine()->resumeAllEffects();
break;
case 18:
//停止所有音效
SimpleAudioEngine::sharedEngine()->stopAllEffects();
break;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
Cocos2D-X开发学习笔记-音乐和音效的使用示例
共14个文件
png:4个
ogg:2个
cpp:2个
3星 · 超过75%的资源 需积分: 10 36 下载量 49 浏览量
2013-08-29
21:53:35
上传
评论
收藏 456KB ZIP 举报
温馨提示
Cocos2D-X开发学习笔记-音乐和音效的使用示例 教程地址:http://blog.csdn.net/yangyu20121224/article/details/10228941
资源推荐
资源详情
资源评论
收起资源包目录
MyMusicEffect.zip (14个子文件)
MyMusicEffect
效果图.png 44KB
Resources
background.mp3 125KB
CloseSelected.png 5KB
background.ogg 87KB
CloseNormal.png 6KB
HelloWorld.png 142KB
effect2.ogg 4KB
effect1.wav 10KB
effect1.raw 8KB
music.mid 45KB
Classes
AppDelegate.cpp 1KB
HelloWorldScene.h 689B
AppDelegate.h 960B
HelloWorldScene.cpp 6KB
共 14 条
- 1
资源评论
- wwwsssxxxqaz2013-12-16感觉一般般吧,不是我想要找的资源。不过还是感谢分享
- 毅然是我2014-04-29学习了,不错哦
寻水的鱼、、
- 粉丝: 1920
- 资源: 55
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功