update Ticker

This commit is contained in:
Nomango 2020-05-26 15:20:02 +08:00
parent f24342acbb
commit 471b6983cd
4 changed files with 22 additions and 28 deletions

View File

@ -35,7 +35,7 @@ EventTickerPtr EventTicker::Create(Duration interval, int times)
if (ptr) if (ptr)
{ {
ptr->SetInterval(interval); ptr->SetInterval(interval);
ptr->SetTotalTickTimes(times); ptr->SetTotalTickCount(times);
} }
return ptr; return ptr;
} }

View File

@ -64,13 +64,7 @@ Task::Task()
void Task::Update(Duration dt) void Task::Update(Duration dt)
{ {
if (!ticker_) if (!ticker_ || ticker_->GetTotalTickCount() == 0)
{
Remove();
return;
}
if (ticker_->GetTotalTickTimes() == 0)
{ {
Remove(); Remove();
return; return;
@ -81,7 +75,7 @@ void Task::Update(Duration dt)
if (callback_) if (callback_)
callback_(this, ticker_->GetDeltaTime()); callback_(this, ticker_->GetDeltaTime());
if (ticker_->GetTickedTimes() == ticker_->GetTotalTickTimes()) if (ticker_->GetTickedCount() == ticker_->GetTotalTickCount())
Remove(); Remove();
} }
} }

View File

@ -29,14 +29,14 @@ TickerPtr Ticker::Create(Duration interval, int times)
if (ptr) if (ptr)
{ {
ptr->SetInterval(interval); ptr->SetInterval(interval);
ptr->SetTotalTickTimes(times); ptr->SetTotalTickCount(times);
} }
return ptr; return ptr;
} }
Ticker::Ticker() Ticker::Ticker()
: ticked_times_(0) : ticked_count_(0)
, total_times_(0) , total_tick_count_(0)
, is_paused_(false) , is_paused_(false)
{ {
} }
@ -62,7 +62,7 @@ bool Ticker::Tick(Duration dt)
if (is_paused_) if (is_paused_)
return false; return false;
if (ticked_times_ == total_times_) if (ticked_count_ == total_tick_count_)
return false; return false;
elapsed_time_ += dt; elapsed_time_ += dt;
@ -72,7 +72,7 @@ bool Ticker::Tick(Duration dt)
delta_time_ = elapsed_time_; delta_time_ = elapsed_time_;
error_time_ = (elapsed_time_ + error_time_) - interval_; error_time_ = (elapsed_time_ + error_time_) - interval_;
elapsed_time_ = 0; elapsed_time_ = 0;
++ticked_times_; ++ticked_count_;
return true; return true;
} }
return false; return false;
@ -115,7 +115,7 @@ void Ticker::Reset()
elapsed_time_ = 0; elapsed_time_ = 0;
delta_time_ = 0; delta_time_ = 0;
error_time_ = 0; error_time_ = 0;
ticked_times_ = 0; ticked_count_ = 0;
} }
} // namespace kiwano } // namespace kiwano

View File

@ -35,8 +35,8 @@ public:
/// \~chinese /// \~chinese
/// @brief 创建报时器 /// @brief 创建报时器
/// @param interval 报时间隔 /// @param interval 报时间隔
/// @param times 报时次数(设 -1 为永久) /// @param tick_count 报时次数(设 -1 为永久)
static TickerPtr Create(Duration interval, int times = -1); static TickerPtr Create(Duration interval, int tick_count = -1);
Ticker(); Ticker();
@ -69,15 +69,15 @@ public:
/// \~chinese /// \~chinese
/// @brief 获取报时器报时次数 /// @brief 获取报时器报时次数
int GetTickedTimes() const; int GetTickedCount() const;
/// \~chinese /// \~chinese
/// @brief 获取报时器总报时次数 /// @brief 获取报时器总报时次数
int GetTotalTickTimes() const; int GetTotalTickCount() const;
/// \~chinese /// \~chinese
/// @brief 设置报时器总报时次数 /// @brief 设置报时器总报时次数
void SetTotalTickTimes(int times); void SetTotalTickCount(int count);
/// \~chinese /// \~chinese
/// @brief 获取报时间隔 /// @brief 获取报时间隔
@ -101,8 +101,8 @@ public:
private: private:
bool is_paused_; bool is_paused_;
int ticked_times_; int ticked_count_;
int total_times_; int total_tick_count_;
Duration interval_; Duration interval_;
Duration elapsed_time_; Duration elapsed_time_;
Duration delta_time_; Duration delta_time_;
@ -115,19 +115,19 @@ inline bool Ticker::IsPausing() const
return is_paused_; return is_paused_;
} }
inline int Ticker::GetTickedTimes() const inline int Ticker::GetTickedCount() const
{ {
return ticked_times_; return ticked_count_;
} }
inline int Ticker::GetTotalTickTimes() const inline int Ticker::GetTotalTickCount() const
{ {
return total_times_; return total_tick_count_;
} }
inline void Ticker::SetTotalTickTimes(int times) inline void Ticker::SetTotalTickCount(int count)
{ {
total_times_ = times; total_tick_count_ = count;
} }
inline Duration Ticker::GetInterval() const inline Duration Ticker::GetInterval() const