接着描述Cocos2D-x基础知识。
这一节我描述一下Cocos2D-x音乐播放功能。
同样是在HelloWorld中稍加改造,二话不少代码:
bool HelloWorld::init()
{
bool bRet = false;
do
{
//////////////////////////////////////////////////////////////////////////
// super init first
//////////////////////////////////////////////////////////////////////////
CC_BREAK_IF(! CCLayer::init());
//////////////////////////////////////////////////////////////////////////
// add your codes below...
//////////////////////////////////////////////////////////////////////////
CCLabelTTF* pLabel = CCLabelTTF::create("Play\BlackMusic", "Arial", 25);
CCLabelTTF* pLabel1 = CCLabelTTF::create("stop\BlackMusic", "Arial", 25);
CCMenuItemLabel *label = CCMenuItemLabel::create(pLabel,this,menu_selector(HelloWorld::play));
CCMenuItemLabel *label1 = CCMenuItemLabel::create(pLabel1,this,menu_selector(HelloWorld::stop));
label->setPosition(CCDirector::sharedDirector()->getWinSize().width/2,CCDirector::sharedDirector()->getWinSize().height/2-10);
label1->setPosition(CCDirector::sharedDirector()->getWinSize().width/2,CCDirector::sharedDirector()->getWinSize().height/2-30);
CCMenuItemImage *pCloseItem = CCMenuItemImage::create("CloseNormal.png","CloseSelected.png", this,menu_selector(HelloWorld::menuCloseCallback));
CC_BREAK_IF(! pCloseItem);
pCloseItem->setPosition(ccp(CCDirector::sharedDirector()->getWinSize().width - 20, 20));
CCMenu* pMenu = CCMenu::create(pCloseItem,label,label1, NULL);
pMenu->alignItemsVertically();
pMenu->setPosition(CCDirector::sharedDirector()->getWinSize().width/2,CCDirector::sharedDirector()->getWinSize().height/2);
CC_BREAK_IF(! pMenu);
this->addChild(pMenu, 1);
CocosDenshion::SimpleAudioEngine::sharedEngine()->playBackgroundMusic("Karunesh-Follow Your Heart.mp3",true);
bRet = true;
} while (0);
return bRet;
}
void HelloWorld::menuCloseCallback(CCObject* pSender)
{
// "close" menu item clicked
CCDirector::sharedDirector()->end();
}
void HelloWorld::play(CCObject* pSender)
{
// "close" menu item clicked
if (CocosDenshion::SimpleAudioEngine::sharedEngine()->isBackgroundMusicPlaying())
{
CocosDenshion::SimpleAudioEngine::sharedEngine()->playBackgroundMusic("Beatit.mp3",true);
}
}
void HelloWorld::stop(CCObject* pSender)
{
if (CocosDenshion::SimpleAudioEngine::sharedEngine()->isBackgroundMusicPlaying())
{
CocosDenshion::SimpleAudioEngine::sharedEngine()->pauseBackgroundMusic();
}
}
这个实例比较简单效果如下:
源码:http://download.csdn.net/detail/vanquishedzxl/7047355
Cocos2D-x游戏开发之音乐播放,布布扣,bubuko.com
原文:http://blog.csdn.net/vanquishedzxl/article/details/21301519