timer.h
来自「奇迹世界公用文件源代码,研究网络游戏的朋友可以研究下」· C头文件 代码 · 共 113 行
H
113 行
#ifndef __TIMER_H__
#define __TIMER_H__
//=======================================================================================================================
/// Timer 努贰胶
/**
@history
- 2005.2.28 : Timer based time 栏肺 官操菌促!
*/
//=======================================================================================================================
#pragma once
namespace util
{
class Timer
{
public:
Timer():m_dwExpireTime(0),m_dwIntervalTime(0),m_bCheckTime(FALSE) {}
~Timer(){}
public:
inline void SetTimer( DWORD dwIntervalTime )
{
m_dwIntervalTime = dwIntervalTime;
Reset();
}
inline DWORD GetIntervalTime() { return m_dwIntervalTime; }
// m_dwIntervalTime 矫埃 埃拜阑 弊措肺 蜡瘤窍绊 促矫 鸥捞赣甫 倒赴促.
inline void Reset(/*m_dwIntervalTime*/)
{
m_dwExpireTime = GetTickCount() + m_dwIntervalTime;
EnableCheckTime();
}
// 鸥捞赣甫 resume
inline VOID EnableCheckTime()
{
m_bCheckTime = TRUE;
}
// 鸥捞赣甫 吝瘤茄促.
inline VOID DisableCheckTime()
{
m_bCheckTime = FALSE;
}
inline VOID IncreasingExpireTime( DWORD dwExpireTime )
{
m_dwExpireTime += dwExpireTime;
}
// 父丰鸥烙捞 登扁鳖瘤狼 泅犁 柳青伏
float GetProgressRatio()
{
int dwProgressTime = GetTickCount() - (m_dwExpireTime - m_dwIntervalTime);
return min(1.0f,((float)dwProgressTime / (float)m_dwIntervalTime));
}
// problem : 捞 窃荐甫 啊阐 龋免且 版快 IsExpired() == TRUE啊 登绰 版快啊 积变促.
// 恐唱搁 1 Tick捞扼档 坷瞒啊 积扁瘤 臼扁 困秦 IsExpired()龋免茄 矫埃阑 利侩窍瘤 臼绰促.
// Therefore, 捞凡版快 IsExpired() == TRUE等 饶俊 Reset()甫 茄锅 龋免秦 霖促!
inline BOOL IsExpired( BOOL bReset=TRUE )
{
DWORD dwCurTime;
if( m_bCheckTime && ( dwCurTime = GetTickCount() ) >= m_dwExpireTime )
{
if( bReset )
{
m_dwExpireTime = dwCurTime + m_dwIntervalTime;
}
return TRUE;
}
else
return FALSE;
}
// 茄锅父 鸥捞赣甫 倒府扁 困秦
inline BOOL IsExpiredManual( BOOL bReset=TRUE )
{
DWORD dwCurTime;
if( m_bCheckTime && ( dwCurTime = GetTickCount() ) >= m_dwExpireTime )
{
if( bReset )
{
m_dwExpireTime = dwCurTime + m_dwIntervalTime;
}
DisableCheckTime();
return TRUE;
}
else
return FALSE;
}
void InitCoolTime()
{
m_dwExpireTime = 0;
}
inline DWORD GetExpireTime() { return m_dwExpireTime; }
private:
BOOL m_bCheckTime;
DWORD m_dwExpireTime;
DWORD m_dwIntervalTime;
};
}//End of namespace util
#endif //__TIMER_H__
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?