Cocos2D-x游戏开发之三:音乐播放

来源:互联网 发布:淘宝买东西寄到加拿大 编辑:程序博客网 时间:2024/05/22 13:01

接着描述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

0 0
原创粉丝点击