Duration和Time细节修复
This commit is contained in:
parent
c3ebe2545a
commit
e3cce89552
|
|
@ -82,14 +82,14 @@ void e2d::Game::start()
|
||||||
{
|
{
|
||||||
_last = _now;
|
_last = _now;
|
||||||
|
|
||||||
input->update(); // 获取用户输入
|
input->update();
|
||||||
timer->update(); // 更新定时器
|
timer->update();
|
||||||
actionManager->update(); // 更新动作管理器
|
actionManager->update();
|
||||||
sceneManager->update(); // 更新场景内容
|
sceneManager->update();
|
||||||
_config->_update(); // 更新游戏配置
|
_config->_update();
|
||||||
renderer->render(); // 渲染游戏画面
|
renderer->render();
|
||||||
window->poll(); // 处理窗口消息
|
window->poll();
|
||||||
GC::flush(); // 刷新内存池
|
GC::flush();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -3,70 +3,66 @@
|
||||||
using namespace std::chrono;
|
using namespace std::chrono;
|
||||||
|
|
||||||
e2d::Duration::Duration()
|
e2d::Duration::Duration()
|
||||||
: ms()
|
: _ms()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
e2d::Duration::Duration(int ms)
|
e2d::Duration::Duration(int ms)
|
||||||
: ms(ms)
|
: _ms(ms)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
e2d::Duration::Duration(std::chrono::milliseconds ms)
|
||||||
|
: _ms(ms)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
int e2d::Duration::milliseconds() const
|
int e2d::Duration::milliseconds() const
|
||||||
{
|
{
|
||||||
return static_cast<int>(ms.count());
|
return static_cast<int>(_ms.count());
|
||||||
}
|
}
|
||||||
|
|
||||||
double e2d::Duration::seconds() const
|
double e2d::Duration::seconds() const
|
||||||
{
|
{
|
||||||
return ms.count() / 1000.0;
|
return _ms.count() / 1000.0;
|
||||||
}
|
|
||||||
|
|
||||||
double e2d::Duration::minutes() const
|
|
||||||
{
|
|
||||||
return ms.count() / 1000.0 / 60.0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool e2d::Duration::operator==(const Duration & other) const
|
bool e2d::Duration::operator==(const Duration & other) const
|
||||||
{
|
{
|
||||||
return ms == other.ms;
|
return _ms == other._ms;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool e2d::Duration::operator!=(const Duration & other) const
|
bool e2d::Duration::operator!=(const Duration & other) const
|
||||||
{
|
{
|
||||||
return ms != other.ms;
|
return _ms != other._ms;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool e2d::Duration::operator>(const Duration & other) const
|
bool e2d::Duration::operator>(const Duration & other) const
|
||||||
{
|
{
|
||||||
return ms > other.ms;
|
return _ms > other._ms;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool e2d::Duration::operator>=(const Duration & other) const
|
bool e2d::Duration::operator>=(const Duration & other) const
|
||||||
{
|
{
|
||||||
return ms >= other.ms;
|
return _ms >= other._ms;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool e2d::Duration::operator<(const Duration & other) const
|
bool e2d::Duration::operator<(const Duration & other) const
|
||||||
{
|
{
|
||||||
return ms < other.ms;
|
return _ms < other._ms;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool e2d::Duration::operator<=(const Duration & other) const
|
bool e2d::Duration::operator<=(const Duration & other) const
|
||||||
{
|
{
|
||||||
return ms <= other.ms;
|
return _ms <= other._ms;
|
||||||
}
|
}
|
||||||
|
|
||||||
e2d::Duration e2d::Duration::operator+(Duration const & other) const
|
e2d::Duration e2d::Duration::operator+(Duration const & other) const
|
||||||
{
|
{
|
||||||
Duration result;
|
return std::move(Duration(_ms + other._ms));
|
||||||
result.ms = ms + other.ms;
|
|
||||||
return std::move(result);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
e2d::Duration e2d::Duration::operator-(Duration const & other) const
|
e2d::Duration e2d::Duration::operator-(Duration const & other) const
|
||||||
{
|
{
|
||||||
Duration result;
|
return std::move(Duration(_ms - other._ms));
|
||||||
result.ms = ms - other.ms;
|
|
||||||
return std::move(result);
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,28 +7,29 @@ e2d::Time::Time()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
e2d::Time::Time(std::chrono::steady_clock::time_point time)
|
||||||
|
: _timePoint(time)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
time_t e2d::Time::getTimeStamp() const
|
time_t e2d::Time::getTimeStamp() const
|
||||||
{
|
{
|
||||||
auto now = time_point_cast<milliseconds>(time).time_since_epoch();
|
auto& now = time_point_cast<milliseconds>(_timePoint).time_since_epoch();
|
||||||
return static_cast<time_t>(now.count());
|
return static_cast<time_t>(now.count());
|
||||||
}
|
}
|
||||||
|
|
||||||
e2d::Time e2d::Time::operator+(Duration const & other) const
|
e2d::Time e2d::Time::operator+(Duration const & other) const
|
||||||
{
|
{
|
||||||
Time result;
|
return std::move(Time(_timePoint - milliseconds(other.milliseconds())));
|
||||||
result.time = time - other.ms;
|
|
||||||
return std::move(result);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
e2d::Duration e2d::Time::operator-(Time const & other) const
|
e2d::Duration e2d::Time::operator-(Time const & other) const
|
||||||
{
|
{
|
||||||
int ms = static_cast<int>(duration_cast<milliseconds>(time - other.time).count());
|
auto& ms = duration_cast<milliseconds>(_timePoint - other._timePoint);
|
||||||
return std::move(Duration(ms));
|
return std::move(Duration(ms));
|
||||||
}
|
}
|
||||||
|
|
||||||
e2d::Time e2d::Time::now()
|
e2d::Time e2d::Time::now()
|
||||||
{
|
{
|
||||||
Time now;
|
return std::move(Time(steady_clock::now()));
|
||||||
now.time = steady_clock::now();
|
|
||||||
return std::move(now);
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -414,15 +414,16 @@ public:
|
||||||
int ms
|
int ms
|
||||||
);
|
);
|
||||||
|
|
||||||
|
explicit Duration(
|
||||||
|
std::chrono::milliseconds ms
|
||||||
|
);
|
||||||
|
|
||||||
// 获取毫秒数
|
// 获取毫秒数
|
||||||
int milliseconds() const;
|
int milliseconds() const;
|
||||||
|
|
||||||
// 获取秒数
|
// 获取秒数
|
||||||
double seconds() const;
|
double seconds() const;
|
||||||
|
|
||||||
// 获取分钟数
|
|
||||||
double minutes() const;
|
|
||||||
|
|
||||||
bool operator== (const Duration &) const;
|
bool operator== (const Duration &) const;
|
||||||
bool operator!= (const Duration &) const;
|
bool operator!= (const Duration &) const;
|
||||||
bool operator> (const Duration &) const;
|
bool operator> (const Duration &) const;
|
||||||
|
|
@ -433,8 +434,8 @@ public:
|
||||||
Duration operator + (Duration const & other) const;
|
Duration operator + (Duration const & other) const;
|
||||||
Duration operator - (Duration const & other) const;
|
Duration operator - (Duration const & other) const;
|
||||||
|
|
||||||
public:
|
protected:
|
||||||
std::chrono::milliseconds ms;
|
std::chrono::milliseconds _ms;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -444,6 +445,10 @@ class Time
|
||||||
public:
|
public:
|
||||||
Time();
|
Time();
|
||||||
|
|
||||||
|
explicit Time(
|
||||||
|
std::chrono::steady_clock::time_point time
|
||||||
|
);
|
||||||
|
|
||||||
// 获取时间戳
|
// 获取时间戳
|
||||||
time_t getTimeStamp() const;
|
time_t getTimeStamp() const;
|
||||||
|
|
||||||
|
|
@ -455,8 +460,8 @@ public:
|
||||||
// 获取当前时间
|
// 获取当前时间
|
||||||
static Time now();
|
static Time now();
|
||||||
|
|
||||||
public:
|
protected:
|
||||||
std::chrono::steady_clock::time_point time;
|
std::chrono::steady_clock::time_point _timePoint;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue