Esempio n. 1
0
 public override float PlayLogic(float timeDp)
 {
     if (mState == FTweenState.TS_Noraml)
     {
         mProgress += timeDp * mDir * mSpeed;
         if (mProgress < 0 || mProgress > 1)
         {
             bool isEnd = mProgress >= 1;
             mActionModeFun(mTimes + 1);
             PlayUpdate(mEaseModeFun(Mathf.Clamp(mProgress, 0.0f, 1.0f)));
             SendMssage(++mTimes, isEnd);
         }
         else
         {
             PlayUpdate(mEaseModeFun(mProgress));
         }
         return(0.0f);
     }
     else if (mState == FTweenState.TS_Delay)
     {
         if (mCurDelayTime > 0)
         {
             mCurDelayTime -= timeDp;
             if (mCurDelayTime > 0)
             {
                 return(0.0f);
             }
             else
             {
                 timeDp = -mCurDelayTime;
             }
         }
         mState = mIsInit?FTweenState.TS_Noraml:FTweenState.TS_Init;
         return(PlayLogic(timeDp));
     }
     else if (mState == FTweenState.TS_Init)
     {
         _ResetOther();
         mState = FTweenState.TS_Noraml;
         return(PlayLogic(timeDp));
     }
     else if (mState == FTweenState.TS_Begin)
     {
         _ResetTween();//重置数据
         if (mState != FTweenState.TS_Delay)
         {
             _ResetOther();
         }
         SendMssage(++mTimes, false);
         return(PlayLogic(timeDp));
     }
     else if (mState == FTweenState.TS_Delete)
     {
         return(-1.0f);
     }
     return(-1.0f);
 }
Esempio n. 2
0
 private bool IsOver(int timece)
 {
     if (mLoopTimes > 0 && mLoopTimes <= timece)
     {
         mState = FTweenState.TS_Delete;
         return(true);
     }
     return(false);
 }
Esempio n. 3
0
 //运动模式
 private void ActMode_Onece(int timece)
 {
     mProgress = 1;
     if (mTurnDelayTime > 0.0001f && timece % 2 == 1)
     {
         SetNextDelayTime(mTurnDelayTime);
     }
     else
     {
         mState = FTweenState.TS_Delete;
     }
 }
Esempio n. 4
0
 private void SetNextDelayTime(float time)
 {
     if (time > 0)
     {
         mCurDelayTime = time;
     }
     else if (time < 0)
     {
         mProgress    += time * mDir * mSpeed * -1;
         mCurDelayTime = 0;
     }
     else
     {
         mCurDelayTime = 0;
     }
     mState = mCurDelayTime > 0 ? FTweenState.TS_Delay : FTweenState.TS_Noraml;
 }