在While循环中根据变化的条件来控制特效播放开关
在Run()函数中的逻辑需求如下: 判断某个动态变化的条件是否被满足,一旦条件被满足则播放某个特效,一旦不满足停止播放特效,由于每次调用播放特效的函数都会导致特效被重头开始播放,所以播放特效的函数只能被执行一次,多次循环重复执行则影响表现.简单代码实现如下:
bool IsNeedPlayMagic()
{
//To Do ...
}
void PlayMagic()
{
//To Do ...
}
void StopPlayMagic()
{
//To Do ...
}
bool bIsPlayingMagic = false;
void Run()
{
if(IsNeedPlayMagic())
{
if(!bIsPlayingMagic)
{
//每次进来只执行一次
PlayMagic();
}
bIsPlayingMagic = true;
}
else
{
if(bIsPlayingMagic )
{
//每次进来只执行一次
StopPlayMagic();
}
bIsPlayingMagic = false;
}
}