📄 cgametimer.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 + -