使用CCAction淡化音乐

时间:2014-03-08 13:54:22

标签: c++ action cocos2d-x

我正在尝试为音乐转换创建淡入/淡出效果。 我创建了一个继承自CCActionInterval的CCFadeMusic操作 所以,如果我从一个图层做这样的事情,它工作正常(它只是更新更新(浮动)函数内的音乐卷):

CCFiniteTimeAction* fadeOut = CCEaseIn::create(CCFadeMusic::actionWithDuration(2.f, CCFadeMusic::OUT), 2.f);
CCFiniteTimeAction* fadeIn = CCEaseIn::create(CCFadeMusic::actionWithDuration(2.f, CCFadeMusic::IN), 2.f);
this->runAction(CCSequence::createWithTwoActions(fadeOut, fadeIn));

但是这些动作将在场景转换中被破坏。

我知道有可能在没有像这样的孩子那样添加类的情况下对选择器进行schedult:

CCDirector::sharedDirector()->getScheduler()->scheduleSelector(schedule_selector(ClassName::func), this, time, false);

但是有没有办法在CCNode上运行一个没有作为孩子添加到任何东西的动作? (我尝试在单例类上运行动作但它不起作用)。

或者还有一些其他方法可以在不使用CCActions的情况下淡入/淡出音乐?

我想过不会自动发布这些动作,但这似乎是一个坏主意,我真的不想在我想播放音乐文件的每个地方都传递this

1 个答案:

答案 0 :(得分:1)

找到它,在从CCNode继承的单例中你可以这样做

  

CCDirector :: sharedDirector() - > getActionManager() - >的addAction(CCSequence :: createWithTwoActions(淡出,   fadeIn),getInstance(),false);