Пример #1
0
    public override void Update(float fDeltaTime)
    {
        if (IsPlaying())
        {
            currentTime += fDeltaTime;
            if (currentTime >= StartTime)
            {
                if (eExeState.Exe_WaitStart == ExeState)
                {
                    startImp();
                    SurviveTime = mCurExecutor.SurviveTime;
                    ExeState    = eExeState.Exe_Running;
                }
                bool bOver = updateImp(fDeltaTime);

                if (SurviveTime >= 0)
                {
                    if ((SurviveTime - currentTime) <= 0.0001f)
                    {
                        bOver        = true;
                        mResidueTime = currentTime - SurviveTime;
                        currentTime  = mResidueTime;
                    }
                    else
                    {
                        bOver = false;
                    }
                }

                if (bOver)
                {
                    linkList.RemoveFirst();
                    if (linkList.Count > 0)
                    {
                        mCurExecutor = linkList.First.Value;
                        SurviveTime  = mCurExecutor.SurviveTime;

                        mCurExecutor.Play();
                        if (mResidueTime > 0f)
                        {
                            mCurExecutor.Update(mResidueTime);
                        }

                        bOver = false;
                    }
                    else
                    {
                        Stop();
                        if (onFinished != null)
                        {
                            onFinished(null);
                        }
                    }
                }
            }
        }
    }
Пример #2
0
    protected override bool updateImp(float fDeltaTime)
    {
        bool bOver = false;

        if (IsPlaying())
        {
            if (null != mCurExecutor)
            {
                mCurExecutor.Update(fDeltaTime);
                if (!mCurExecutor.IsPlaying())
                {
                    bOver = true;
#if DEBUG && !PROFILER
                    ///        Debug.Log("当前执行器结束");
#endif
                }
            }
        }
        return(bOver);
    }