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

📄 pgebasedataclass.h

📁 pocket pc小游戏源码
💻 H
字号:
// base DataClass
#pragma once
#include "pgestd.h"
template <class VALUE>
class cstack
{
	struct stackUt
	{
		VALUE pdata;
		stackUt* pnext;
	};

public:
	cstack(int iSize=256)
	{
		pCur = NULL;
		iMax = iSize;
		pMain = new stackUt[iSize];
		memset(pMain, 0, iSize*sizeof(stackUt));
		iCount = 0;
		memset(&nilValue, 0, sizeof(VALUE));
		pnCur = pMain;
	}

	~cstack(void)
	{
		SAFE_DELETE_ARY(pMain);
	}
	void setstackempty()
	{

		memset(pMain, 0, iMax*sizeof(stackUt));
		iCount = 0;
		pCur = 0;
		pnCur = pMain;

	}

	bool isstackempty()
	{
		return iCount==0;
	}

	VALUE stackpop()	// 栈方式,后进先出
	{
		if (!iCount) return nilValue;
		stackUt* pr = pCur;
		pCur = pr->pnext;
		iCount--;
		return pr->pdata;
	}

	VALUE stackNpop()	// 队列方式,先进先出
	{
		if (!iCount) return nilValue;
		stackUt* pr = pnCur;
		pnCur = pr+1;
		iCount--;
		if (!iCount) 
		{
			pnCur = pMain;
			pCur = 0;
		}
		return pr->pdata;
	}

	void stackpush(VALUE p)
	{
		stackUt* ps = pMain+iCount;
		ps->pdata = p;
		ps->pnext = pCur;
		pCur = ps;
		iCount++;
	}

	int iCount;
	stackUt* pnCur;
	stackUt* pCur;
	stackUt* pMain;
	int iMax;
	VALUE nilValue;
};

class CPGETimer
{
public:
	DWORD dwDalyTimes;
	DWORD dwStaticTimes;
	DWORD dwAllTimes;
	int  iFrmlim;

	CPGETimer(void)
	{
		dwDalyTimes = 0;
		dwStaticTimes = 0;
		iFrmlim = 1;
	}
	~CPGETimer(void){}

	void Init()
	{
		dwStaticTimes = timeGetTime();
		dwAllTimes = 0;
	}

	void Tick()
	{	
		dwDalyTimes = timeGetTime() - dwStaticTimes;
		dwStaticTimes = timeGetTime();
		dwAllTimes += dwDalyTimes;
		if (dwDalyTimes < iFrmlim) {
			Sleep(iFrmlim - dwDalyTimes);
			//dwDalyTimes = iFrmlim;
		}
	}

	DWORD GetAllTimes()
	{
		return dwAllTimes;
	}

	DWORD GetDalyTimes()
	{
		return dwDalyTimes;
	}
	
	void SetFrmLim(int frm)
	{
		iFrmlim = frm;
	}
};

⌨️ 快捷键说明

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