dl
dl_timer.h
浏览该文件的文档.
1
12#pragma once
13
14namespace dl
15{
18{
19public:
20 TimerRegular() : _cur(0), _max(1.0) {};
21 TimerRegular(FloatTime max) : _cur(0), _max(max) {};
23
27 bool Run(FloatTime dt)
28 {
29 _cur += dt;
30 if (_cur >= _max)
31 {
32 _cur -= _max;
33 return true;
34 }
35 return false;
36 }
37
38 void Set(FloatTime max) { _max = max; }
39 void Set(FloatTime max, FloatTime cur) { _max = max; _cur = cur; }
40 void SetRemain(FloatTime remain) { _cur = _max - remain; }
41 void SetCur(FloatTime cur) { _cur = cur; }
42private:
43 FloatTime _cur;
44 FloatTime _max;
45};
46
49{
50public:
52 {
53 Set(1.0, false);
54 }
55 TimerReverse(float t, bool yes = false)
56 {
57 Set(t, yes);
58 }
59
60 bool Run(FloatTime dt)
61 {
62 _cur += dt;
63 if (_cur < _t)
64 return false;
65 if (_cur < _t * 2.0_f)
66 return true;
67
68 _cur -= _t * 2.0_f;
69 return false;
70 }
71
72 void Set(FloatTime t, bool yes = false)
73 {
74 _t = t;
75 _cur = yes ? _t : 0;
76 }
77
78 void Reset(bool yes)
79 {
80 Set(_t, yes);
81 }
82private:
83 FloatTime _cur;
84 FloatTime _t;
85};
86}
void SetRemain(FloatTime remain)
void SetCur(FloatTime cur)
void Set(FloatTime max)
TimerRegular(FloatTime max)
void Set(FloatTime max, FloatTime cur)
bool Run(FloatTime dt)
计时,如果到了时间则返回true,且重新计时。
void Reset(bool yes)
void Set(FloatTime t, bool yes=false)
bool Run(FloatTime dt)
TimerReverse(float t, bool yes=false)
float FloatTime