From 72e45f0062d727cedd576d1e1251f6722454a119 Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 12 Nov 2018 08:04:11 +0800 Subject: =?UTF-8?q?*=E4=BF=AE=E6=94=B9=E4=BB=A3=E7=A0=81=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/libjin/Time/je_timer.h | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) (limited to 'src/libjin/Time/je_timer.h') diff --git a/src/libjin/Time/je_timer.h b/src/libjin/Time/je_timer.h index fabde28..31cd322 100644 --- a/src/libjin/Time/je_timer.h +++ b/src/libjin/Time/je_timer.h @@ -22,12 +22,14 @@ namespace JinEngine typedef std::function TimerCallback; + typedef std::function FinishCallback; + /// /// /// class Handler { - private: + public: friend class Timer; enum Type { @@ -35,16 +37,18 @@ namespace JinEngine AFTER, REPEAT, }; - Handler(Type type, int duration, int count = 0, TimerCallback callback = nullptr, void* paramters = nullptr); + Handler(Type type, float duration, int count = 0, TimerCallback callback = nullptr, void* paramters = nullptr, FinishCallback finishcallback = nullptr); virtual ~Handler(); - void process(int ms); + void process(float dt); - int duration; + protected: int count; - int tickdown; int countdown; + float duration; + float tickdown; Type type; TimerCallback callback; + FinishCallback finishCallback; void* paramters; bool canceled; }; @@ -62,22 +66,22 @@ namespace JinEngine /// /// /// - void update(int ms); + void update(float dt); /// /// /// - Handler* every(int ms, TimerCallback callback, void* paramters); + Handler* every(float dt, TimerCallback callback, void* paramters, FinishCallback finish); /// /// /// - Handler* after(int ms, TimerCallback callback, void* paramters); + Handler* after(float dt, TimerCallback callback, void* paramters, FinishCallback finish); /// /// /// - Handler* repeat(int ms, int count, TimerCallback callback, void* paramters); + Handler* repeat(float dt, int count, TimerCallback callback, void* paramters, FinishCallback finish); /// /// -- cgit v1.1-26-g67d0