⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 timer.cpp

📁 骨骼动画....把魔兽模型解出的代码..
💻 CPP
字号:
//+-----------------------------------------------------------------------------
//| Included files
//+-----------------------------------------------------------------------------
#include "Timer.h"


//+-----------------------------------------------------------------------------
//| Global objects
//+-----------------------------------------------------------------------------
TIMER Timer;


//+-----------------------------------------------------------------------------
//| Constructor
//+-----------------------------------------------------------------------------
TIMER::TIMER()
{
	HighResolutionSet = FALSE;
	NextTimerValue = 0;

	if(::timeBeginPeriod(EDITOR_TIMER_RESOLUTION) == TIMERR_NOERROR)
	{
		HighResolutionSet = TRUE;
	}
}


//+-----------------------------------------------------------------------------
//| Destructor
//+-----------------------------------------------------------------------------
TIMER::~TIMER()
{
	if(HighResolutionSet)
	{
		::timeEndPeriod(EDITOR_TIMER_RESOLUTION);
		HighResolutionSet = FALSE;
	}
}


//+-----------------------------------------------------------------------------
//| Starts a new timeout
//+-----------------------------------------------------------------------------
VOID TIMER::Start(DWORD Timeout)
{
	NextTimerValue = ::timeGetTime() + Timeout;
}


//+-----------------------------------------------------------------------------
//| Checks if the new timeout has occured
//+-----------------------------------------------------------------------------
BOOL TIMER::Check() CONST
{
	return ::timeGetTime() >= NextTimerValue;
}


//+-----------------------------------------------------------------------------
//| Sleeps if neccessary (not longer than the timeout)
//+-----------------------------------------------------------------------------
VOID TIMER::Sleep() CONST
{
	DWORD SleepTime;
	DWORD CurrentTime;

	CurrentTime = ::timeGetTime();

	if(NextTimerValue <= CurrentTime) return;

	SleepTime = NextTimerValue - CurrentTime;

	if(SleepTime <= EDITOR_TIMER_MIN_SLEEP_TIME) return;

	if(SleepTime > EDITOR_TIMER_MAX_SLEEP_TIME)
	{
		SleepTime = EDITOR_TIMER_MAX_SLEEP_TIME + EDITOR_TIMER_MIN_SLEEP_TIME;
	}

	::Sleep(SleepTime - EDITOR_TIMER_MIN_SLEEP_TIME);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -