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

📄 cgametimer.cpp

📁 Symbian开发提高的一个很好的实例,其实现了一个非常好理解的Symbian游戏开发流程
💻 CPP
字号:
#include <e32svr.h>
#include <coemain.h>

#include "CGameTimer.h"
#include "MGameTimerObserver.h"

////////////////////////////////////////////////////////////////////////////
// construct and destruct

// NewL()
CGameTimer* CGameTimer::NewL(MGameTimerObserver& aObserver)
{
	CGameTimer* self = new (ELeave) CGameTimer(aObserver);
	CleanupStack::PushL(self);

	self->ConsturctL();

	CleanupStack::Pop();

	return self;
}

// ConstructL()
void CGameTimer::ConsturctL()
{
	iTick = 100000;
	iPeriodicTimer = CPeriodic::NewL(CActive::EPriorityStandard);
}

// CGameTimer()
CGameTimer::CGameTimer(MGameTimerObserver& aObserver) : iObserver( aObserver )
{}

// ~
CGameTimer::~CGameTimer()
{
	iPeriodicTimer->Cancel();
	delete iPeriodicTimer;
	iPeriodicTimer = NULL;
}

/////////////////////////////////////////////////////////////////////////////
// Other Method

// Start()
void CGameTimer::Start()
{
	if( !iPeriodicTimer->IsActive() )
		iPeriodicTimer->Start(iTick, iTick, TCallBack(CGameTimer::Period, this) );
}

// Cancel()
void CGameTimer::Cancel()
{
	iPeriodicTimer->Cancel();
}

// SetTickTime
void CGameTimer::SetTickTime(TTimeIntervalMicroSeconds32 aTickTime)
{
	iTick = aTickTime;
	Cancel();
	Start();
}


// Period()
TInt CGameTimer::Period(TAny* aPtr)
{
	return ((CGameTimer*)aPtr)->DoCall();
}

// DoCall()
TInt CGameTimer::DoCall()
{
	return iObserver.DoGameFrameL();
}

⌨️ 快捷键说明

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