淡入音乐

Fade Music with CCAction

本文关键字:音乐 淡入      更新时间:2023-10-16

我正在尝试创建对音乐过渡的淡出/输出影响。我已经创建了一个从CCACTION Interval继承的CCFADEMUSIC动作因此,如果我从一层进行这样的操作,它可以正常工作(它只是在更新update(float)函数中更新音乐卷):

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));

但是,此操作将在场景过渡中被摧毁。

我知道可以在不添加这样的小孩的情况下安排选择器:

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

但是,有没有办法在CCNode上进行动作,该动作没有小时候添加到任何东西上?(我尝试在单顿课上运行动作,但它不起作用)。

或者还有其他一些方法可以淡入/熄灭音乐而不使用CCactions?

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

找到了它,在ccnode继承的单例中,您只需执行此操作

ccdirector :: shareddirector() -> getActionManager() -> addaction(ccsequence :: createwithtwoactions(fadeout,fadeout, fadein),getInstance(),false);