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

📄 math.cpp

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



/*
  GirdX = g / 2 * ( y / h - (w - x) / w )
  GridY = g / 2 * ( y / h + (w + x) / w )
*/

VOID  Coord_2DWorldToGrid(int x , int y , int *piGridX , int *piGridY , float fGridWidth , float fGridHeight , int iGridNum)
{ 
	float iHalfGridNum = (float)iGridNum / 2.0f;	  
	float w = fGridWidth  * iHalfGridNum;
	float h = fGridHeight * iHalfGridNum;
    float GridY = iHalfGridNum * ((float)y / h - (w - (float)x) / w); 
    float GridX = iHalfGridNum * ((float)y / h + (w - (float)x) / w); 
	if(GridX < 0) GridX-=1;
	if(GridY < 0) GridY-=1;
	*piGridY = (int)GridY;
	*piGridX = (int)GridX;
}

/*
  WorldX = (g + y - x) * w / g;
  WorldY = (    y + x) * h / g;
*/

VOID  Coord_GridTo2DWorld(int x , int y , int *piWorldX , int *piWorldY , float fGridWidth , float fGridHeight , int iGridNum)
{
	float iHalfGridNum = (float)iGridNum / 2.0f;	  
	float w = fGridWidth  * iHalfGridNum;
	float h = fGridHeight * iHalfGridNum;
    
	float WorldX = (float)(iGridNum + y - x) * ( w / (float)iGridNum );
	float WorldY = (float)(           y + x) * ( h / (float)iGridNum );

	*piWorldX = (int)WorldX;
	*piWorldY = (int)WorldY;
}



VOID Blit_GetValidRect(RECT *prcDest , RECT *prcSrc , 
					   int iDrawX , int iDrawY , 
					   RECT rcDest , RECT rcSrc)
{
	RECT rc;	//将 rcSrc 转化为屏幕坐标系
    rc.left		= iDrawX;
	rc.top		= iDrawY;
    rc.right	= iDrawX + rcSrc.right	- rcSrc.left;
	rc.bottom	= iDrawY + rcSrc.bottom	- rcSrc.top;

	//求出与目标区域rcDest的交集
	if(IntersectRect(prcDest , &rcDest , &rc))
	{
		//	将rcInter转化为源图坐标
		
		//int iOffLeft	  = prcDest->left	- iDrawX;
		//int iOffTop	  = prcDest->top	- iDrawY;
		//int iOffRight   = prcDest->right	- (iDrawX + rcSrc.right	 - rcSrc.left);
		//int iOffBottom  = prcDest->bottom - (iDrawY + rcSrc.bottom - rcSrc.top);
		
		prcSrc->left	= rcSrc.left	+ prcDest->left	   - iDrawX;
		prcSrc->top		= rcSrc.top		+ prcDest->top	   - iDrawY;
		prcSrc->right	= rcSrc.left	+ prcDest->right   - iDrawX;
		prcSrc->bottom	= rcSrc.top		+ prcDest->bottom  - iDrawY;
	}
		
}

⌨️ 快捷键说明

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