早些年寫的:)
周期倒計時是游戲中常見的模塊,通常服務于資源的生產、體力的回復等等場景。
一般來說有2中實現方式,一種是基于上一次行動的時間(PrevActTime)。另一種是基于下一次行動時間(NextActTime)。但是他們都包含2個基本的要素:周期(interval)和當前時間(current)。
這兩種方式只是從不同的角度來觀察問題,但是都要解決2個問題:
- 距離下一次行動還有多久?,
- 如果要加速,該怎么處理?
對于第一種方式:
<pre>
|---------------------------------------------------|
Interval
--------|---------------------------------------------------|-----
PrevActTime Current
</pre>
如圖所示,第一個行表示周期,第二行表示上一次行動時間和當前時間。
- 距離下一次時間的公式為:(Interval)-(Current-PreActTime)
- 加速的處理方式為:PrevActTime設置為:Current-Interval
對于第二種方式:
<pre>
|---------------------------------------------------|
Interval
----------------------------|-------------------------------|--
current nextActTime
</pre>
如圖所示,第一個行表示周期,第二行表示當前時間行動時間和下一次的行動時間。
- 距離下一次時間的公式為:NextActTime - current;
- 加速的處理方式為:NextTime設置為:Current