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

📄 game_grid.cpp

📁 大家好!这是一个网络游戏源码
💻 CPP
字号:
#include "runner_game.h"

BOOL GAME_GRID::Init(int bGridType  , 
					 int iGridSizeX	, int iGridSizeY , 
					 int iGridWidth , int iGridHeight)
{
	m_bGridType		=	bGridType;		
	m_iGridSizeX	=	iGridSizeX;		
	m_iGridSizeY	=	iGridSizeY;
	m_iGridWidth	=	iGridWidth;
	m_iGridHeight	=	iGridHeight;

	iAttrSize	 =	m_iGridWidth  * m_iGridHeight;
	iWorldWidth	 =  m_iGridWidth  * m_iGridSizeX;
	iWorldHeight =  m_iGridHeight * m_iGridSizeY;
	
	GetMemory(m_pbAttr , BYTE , iAttrSize);
	if(m_pbAttr==NULL)
	{
		Out("ERR : %s\n" , "m_pbAttr Alloc Failed!");
		return FALSE;
	}
	ClearAttr();
	return TRUE;
}

VOID GAME_GRID::SetBorderValue(BYTE bValue)
{
	if(m_pbAttr==NULL) return;
	
	int x , y;
	LPBYTE pbAttr;
	
	// top
	pbAttr = m_pbAttr;
	for(x = 0 ; x < m_iGridWidth ; x++) *(pbAttr + x) = bValue;
	
	// bottom
	pbAttr = m_pbAttr + (m_iGridHeight - 1) * m_iGridWidth;
	for(x = 0 ; x < m_iGridWidth ; x++) *(pbAttr + x) = bValue;
	
	// left
	pbAttr = m_pbAttr;
	for(y = 0 ; y < m_iGridHeight ; y++)  { *pbAttr = bValue; pbAttr+=m_iGridWidth; }
	
	// right
	pbAttr = m_pbAttr + m_iGridWidth - 1;
	for(y = 0 ; y < m_iGridHeight ; y++)  { *pbAttr = bValue; pbAttr+=m_iGridWidth; }
}

LPRECT GAME_GRID::WorldRectToGridRect(RECT rcWorld , LPRECT prcGrid)
{
	RECT rcGridWorld;
	rcGridWorld.left	= 0;
	rcGridWorld.top		= 0;
	rcGridWorld.right	= iWorldWidth;
	rcGridWorld.bottom	= iWorldHeight;
	
	RECT rcInter;
	if(IntersectRect(&rcInter	, &rcWorld , &rcGridWorld)==NULL)
	{
		prcGrid = NULL;
		return NULL; 
	}
	prcGrid->left	= rcInter.left   / m_iGridSizeX;
	prcGrid->top	= rcInter.top    / m_iGridSizeY;
	prcGrid->right	= rcInter.right  / m_iGridSizeX;
	prcGrid->bottom	= rcInter.bottom / m_iGridSizeY;
	
	if(prcGrid->right==m_iGridWidth)
	{
		prcGrid->right-=1;
	}
	if(prcGrid->bottom==m_iGridHeight)
	{
		prcGrid->bottom-=1;
	}
	//Out("rcInter top = %d\n" , rcInter.top);
	return prcGrid;
}

BOOL GAME_GRID::LoadAttrFromFile(TCHAR *strFileName)
{
	if(m_pbAttr==NULL) return FALSE;
	FILE *fp = fopen(strFileName , "rb");
	if(fp==NULL) 
	{
		Out("ERR : %s\n" , "Load Attr File Failed!");
		return FALSE;
	}
	fread(m_pbAttr , iAttrSize , 1 , fp);
	fclose(fp);
	return TRUE;
}

VOID GAME_GRID::SaveAttrFile(TCHAR *strFileName)
{
	if(m_pbAttr==NULL) return ;
	FILE *fp = fopen(strFileName , "wb");
	fwrite(m_pbAttr , iAttrSize , 1 , fp);
	fclose(fp);
}

⌨️ 快捷键说明

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