Cocos2d-x v3.x tutorial を試す (12) … Sound(3)

Cocos2d-x v3 C++ Tutorial … 流すだけでそんなに時間かからないだろう
…と思っていた自分が恥ずかしい..

とりあえず Sound系の残りを流す。
 


Cocos2d-x v3 C++ Tutorial 29 – Setting Sound Effect Volume
https://www.youtube.com/watch?v=ZPsJJhimM28

Cocos2d-x v3 C++ Tutorial 30 – Stopping Sound Effect
https://www.youtube.com/watch?v=pBTsA7U2rSU

Cocos2d-x v3 C++ Tutorial 31 – Playing Music
https://www.youtube.com/watch?v=PpvQQKwCdi4

Cocos2d-x v3 C++ Tutorial 32 – Stopping Music
https://www.youtube.com/watch?v=Q3w3v_Iwsn0

Cocos2d x v3 C++ Tutorial 33 – Pausing and Resuming Music
https://www.youtube.com/watch?v=EepI2aVSkcQ

Cocos2d-x v3 C++ Tutorial 34 – Setting Music Volume
https://www.youtube.com/watch?v=XmU7VpwNT50

 


まぁ、BGM/SE の再生・一時停止・再開・ボリューム … 動く事の確認です。
CallFunction のラムダ式の記述がすごい気になっていたので遊べてよかった ^^
[]() … の部分について知識を付けたい…

    //Tutorial 27 - 34
    {
        const std::function<void ()> func;

        auto action = CCSequence::create(

            CallFunc::create([=]() -> void {
                //Tutorial 28
                CocosDenshion::SimpleAudioEngine::getInstance()->playEffect(fileName.c_str(), true);
            }),

            DelayTime::create(2.5f),

            CallFunc::create([]() -> void {
                //Tutorial 29
                CocosDenshion::SimpleAudioEngine::getInstance()->setEffectsVolume(0.1f);
            }),

            DelayTime::create(2.5f),

            CallFunc::create([]() -> void {
                //Tutorial 30
                CocosDenshion::SimpleAudioEngine::getInstance()->stopAllEffects();
            }),

            CallFunc::create([]() -> void {
                CocosDenshion::SimpleAudioEngine::getInstance()->setEffectsVolume(1.0f);
            }),

            CallFunc::create([=]() -> void {
                //Tutorial 31
                CocosDenshion::SimpleAudioEngine::getInstance()->playBackgroundMusic(bgmFile.c_str());
            }),

            DelayTime::create(1.0f),

            CallFunc::create([]() -> void {
                //Tutorial 32
                CocosDenshion::SimpleAudioEngine::getInstance()->stopBackgroundMusic();
            }),

            DelayTime::create(0.5f),

            CallFunc::create([=]() -> void {
                CocosDenshion::SimpleAudioEngine::getInstance()->playBackgroundMusic(bgmFile.c_str());
            } ),

            DelayTime::create(0.5f),

            CallFunc::create([]() -> void {
                //Tutorial 33 Pause
                CocosDenshion::SimpleAudioEngine::getInstance()->pauseBackgroundMusic();
            } ),

            DelayTime::create(0.5f),

            CallFunc::create([]() -> void {
                //Tutorial 33 Resume
                CocosDenshion::SimpleAudioEngine::getInstance()->resumeBackgroundMusic();
            } ),

            //アクションで徐々にボリュームを落としてみる
            Repeat::create(Sequence::create(DelayTime::create(0.25f),
                                            CallFunc::create([]() -> void {
                    float value = CocosDenshion::SimpleAudioEngine::getInstance()->getBackgroundMusicVolume();
                    {
                        value -= 0.1f;
                        if (value < 0.1f)
                        {
                            value = 0.1f;
                        }
                    }

                    //Tutorial 34
                    CocosDenshion::SimpleAudioEngine::getInstance()->setBackgroundMusicVolume(value);
                }),
                nullptr), 10),

            nullptr);

        this->runAction(action);
    }

Add a Comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です