亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? chitchecker.cpp

?? 一個2D的賽車游戲 在VC下運行 開發庫DIRECTX8.1以上
?? CPP
字號:
#include "stdafx.h"
#include "cHitChecker.h"
#include <stdio.h>

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

cHitChecker::cHitChecker()
{
	hBoundingPoly = NULL;
}

cHitChecker::~cHitChecker()
{
	if(hBoundingPoly != NULL)
	{
		DeleteObject(hBoundingPoly);
	}
}

void cHitChecker::CreateRectBound(int nWidth,int nHeight)
{
	// if this class already have a rgn defined, destroyed
	Destroy();

	hBoundingPoly = CreateRectRgn(0, 0, nWidth, nHeight);
}

void cHitChecker::RemoveRectFromBound(int nX, int nY, int nWidth, int nHeight)
{
	// Use the combine Rgn API to remove a rect from the class internal region
	HRGN	hRgnSrc = NULL;

	hRgnSrc = CreateRectRgn(nX, nY, nWidth+nX, nHeight+nY);
	
	int iRet = CombineRgn(hBoundingPoly, hBoundingPoly, hRgnSrc, RGN_DIFF);
	
	DeleteObject(hRgnSrc);
}

void cHitChecker::RemovePolyFromBound(LPPOINT lpPoints, int iCount, int iX, int iY)
{
	// Use the combine Rgn API to remove a poly from the class internal region
	HRGN	hRgnSrc = NULL;
	LPPOINT	pStart = lpPoints;

	if(iX != 0)
	{
		for(int i=0;i<iCount;i++)
		{
			lpPoints->x = lpPoints->x + iX;
			lpPoints->y = lpPoints->y + iY;
			lpPoints++;
		}
		lpPoints = pStart;
	}
	

	hRgnSrc = CreatePolygonRgn(lpPoints, iCount, ALTERNATE);
	if(hRgnSrc == NULL)
	{
		DXTRACE_MSG("ERROR !");
	}
	CombineRgn(hBoundingPoly, hBoundingPoly, hRgnSrc, RGN_DIFF);
	DeleteObject(hRgnSrc);

	if(iX != 0)
	{
		for(int i=0;i<iCount;i++)
		{
			lpPoints->x = lpPoints->x - iX;
			lpPoints->y = lpPoints->y - iY;
			lpPoints++;
		}
		lpPoints = pStart;
	}
}

void cHitChecker::CreatePolygonBound(LPPOINT lpPoints, int nCount)
{
	// Use the combine Rgn API to remove a poly from the class internal region
	Destroy();
	hBoundingPoly = CreatePolygonRgn(lpPoints, nCount, ALTERNATE);
}


BOOL cHitChecker::HaveHitted(cHitChecker *pHitCheck, int nX, int nY, int nSrcX, int nSrcY)
{
	HRGN	hSrcObjectRgn;
	HRGN	hCompObjectRgn;
	BOOL	bResult = FALSE;
	DWORD	dwSize;
	UINT	i = 0;

	RGNDATA*	rgnData;

	// First check the bounding rectangle
	RECT	rcObj;
	GetRgnBox(pHitCheck->hBoundingPoly,&rcObj);
	rcObj.top  += nY; rcObj.bottom  += nY;
	rcObj.left += nX; rcObj.right   += nX;

	if(nSrcX!=0 && nSrcY!=0)
	{
		OffsetRgn(hBoundingPoly, nSrcX, nSrcY);
		if(RectInRegion(hBoundingPoly, &rcObj) == 0)
		{
			OffsetRgn(hBoundingPoly, -nSrcX, -nSrcY);
			return FALSE;
		}
		OffsetRgn(hBoundingPoly, -nSrcX, -nSrcY);

	}
	else
	{
		if(RectInRegion(hBoundingPoly, &rcObj) == 0)
			return FALSE;
	}

	dwSize = GetRegionData(pHitCheck->hBoundingPoly, sizeof(RGNDATA), NULL);
	rgnData = (RGNDATA*) malloc(dwSize);
	GetRegionData(pHitCheck->hBoundingPoly, dwSize, rgnData);
	hSrcObjectRgn = ExtCreateRegion(NULL, dwSize, rgnData);
	
	OffsetRgn(hSrcObjectRgn, nX, nY);

	dwSize = GetRegionData(hSrcObjectRgn, sizeof(RGNDATA), NULL);
	rgnData = (RGNDATA*) realloc(rgnData, dwSize);
	GetRegionData(hSrcObjectRgn, dwSize, rgnData);
	
	if(nSrcX !=0 && nSrcY !=0)
	{
		RGNDATA*	rgnData2;

		// Same copy for the region being tested
		dwSize = GetRegionData(hBoundingPoly, sizeof(RGNDATA), NULL);
		rgnData2 = (RGNDATA*) malloc(dwSize);
		GetRegionData(hBoundingPoly, dwSize, rgnData2);
		hCompObjectRgn = ExtCreateRegion(NULL, dwSize, rgnData2);
		OffsetRgn(hCompObjectRgn, nSrcX, nSrcY);

		bResult = TRUE;

		for(i=0;i<rgnData->rdh.nCount;i++)
		{
			memcpy(&rcObj, &rgnData->Buffer[i*sizeof(RECT)], sizeof(RECT));
			if(RectInRegion(hCompObjectRgn, &rcObj) != 0)
			{
				bResult = FALSE;
				break;
			}
		}

		free(rgnData2);
		DeleteObject(hCompObjectRgn);

	}
	else
	{
		bResult = TRUE;

		for(i=0;i<rgnData->rdh.nCount;i++)
		{
			memcpy(&rcObj, &rgnData->Buffer[i*sizeof(RECT)], sizeof(RECT));

			if(RectInRegion(hBoundingPoly, &rcObj) != 0)
			{
				bResult = FALSE;
				break;
			}
		}
	}
	free((void*)rgnData);
	// Free the resources
	DeleteObject(hSrcObjectRgn);
	return !bResult;
}

void cHitChecker::Destroy()
{
	// If we have a region, destroy it
	if(hBoundingPoly != NULL)
	{
		DeleteObject(hBoundingPoly);
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
九色|91porny| 国产一区二区三区国产| 欧美a级理论片| 成人国产精品免费| 欧美成人官网二区| 一区二区三区欧美日| 国产在线观看一区二区| 欧美剧情电影在线观看完整版免费励志电影 | 欧美va亚洲va在线观看蝴蝶网| 最新中文字幕一区二区三区| 国内成人免费视频| 欧美精品自拍偷拍动漫精品| 精品在线视频一区| 亚洲精品ww久久久久久p站| 欧美精品免费视频| 免费在线观看精品| 色婷婷久久99综合精品jk白丝| 精品久久久三级丝袜| 亚洲国产精品久久一线不卡| 成人午夜短视频| 久久久久久久久久久久久夜| 久久99精品国产.久久久久久| 欧美日韩一级二级| 亚洲婷婷国产精品电影人久久| 国产一区91精品张津瑜| 欧美变态口味重另类| 日韩av网站免费在线| 欧美日韩国产小视频在线观看| 亚洲女女做受ⅹxx高潮| 91丝袜呻吟高潮美腿白嫩在线观看| 国产欧美视频在线观看| 国产成人在线免费| 国产欧美一区二区精品婷婷| 成人免费观看视频| 中文字幕一区二区三区四区| 99久久精品免费观看| 国产精品成人午夜| 色综合av在线| 亚洲国产视频一区| 制服丝袜在线91| 青娱乐精品视频| 精品国产露脸精彩对白| 国产在线播放一区三区四| 久久久精品2019中文字幕之3| 国产麻豆成人精品| 国产精品福利一区二区三区| 91在线国产观看| 亚洲在线成人精品| 91麻豆精品国产91久久久更新时间 | 日韩有码一区二区三区| 欧美精品精品一区| 国产在线播精品第三| 国产精品久久三区| 欧美无乱码久久久免费午夜一区| 午夜影院久久久| 久久婷婷国产综合精品青草| 成人黄页毛片网站| 亚洲午夜国产一区99re久久| 日韩欧美在线综合网| av在线播放不卡| 亚洲一级在线观看| 精品国产91九色蝌蚪| 风流少妇一区二区| 一级日本不卡的影视| 欧美精品一二三四| 成人综合激情网| 亚洲国产日韩av| 久久精品一区蜜桃臀影院| 99久久久精品免费观看国产蜜| 亚洲精品国产精华液| 精品捆绑美女sm三区| 色又黄又爽网站www久久| 蜜臀精品一区二区三区在线观看 | 亚洲国产日韩av| 久久在线观看免费| 91麻豆免费看| 国产一区二区三区香蕉| 亚洲欧洲av色图| 日韩免费一区二区| 波多野结衣中文字幕一区二区三区| 亚洲国产人成综合网站| 久久看人人爽人人| 欧美日韩日本视频| 福利一区福利二区| 免费在线观看不卡| 一区2区3区在线看| 精品伦理精品一区| 欧美日韩在线免费视频| 国产一区二区h| 日韩av在线免费观看不卡| 国产精品二三区| 91精品国产品国语在线不卡| 色偷偷久久一区二区三区| 国产一区久久久| 日韩激情av在线| 亚洲午夜免费电影| 日韩码欧中文字| 国产精品久久看| 亚洲精品一区二区精华| 欧美日韩第一区日日骚| 欧美在线一区二区三区| 99re成人精品视频| 国产成人av电影在线| 青青草国产成人99久久| 亚洲一区二区欧美激情| 国产精品美女久久久久久| 国产亚洲一二三区| 精品99999| 久久久99久久| 国产色一区二区| 欧美激情在线看| 中文字幕中文字幕一区二区| 中文字幕精品一区二区精品绿巨人 | 亚洲国产综合人成综合网站| 一区视频在线播放| 亚洲欧洲国产专区| 一区在线观看视频| 亚洲精品国产视频| 夜夜揉揉日日人人青青一国产精品| 亚洲美女电影在线| 亚洲视频一二区| 亚洲欧美另类图片小说| 亚洲三级在线播放| 亚洲与欧洲av电影| 五月天丁香久久| 日本免费在线视频不卡一不卡二 | 一二三四社区欧美黄| 综合久久国产九一剧情麻豆| 一区二区三区四区不卡在线| 亚洲激情在线激情| 亚洲成a天堂v人片| 精油按摩中文字幕久久| 国产精品99久久不卡二区| 成人免费观看视频| 欧美这里有精品| 精品久久久久久综合日本欧美| 久久欧美中文字幕| 国产精品久久久爽爽爽麻豆色哟哟| 国产精品国产三级国产aⅴ中文| 亚洲欧美另类久久久精品2019| 亚洲二区在线观看| 久久99国产精品免费网站| 国产成人综合视频| 欧美午夜精品一区二区三区| 欧美一区二区三区视频在线观看 | 日韩视频在线一区二区| 久久影院午夜论| 一区二区三区蜜桃| 狠狠色伊人亚洲综合成人| av电影在线观看一区| 7777精品伊人久久久大香线蕉最新版| 精品国产凹凸成av人导航| 成人欧美一区二区三区在线播放| 丝袜亚洲另类欧美综合| 国产成人在线免费| 欧美一区二区视频观看视频| 国产精品免费丝袜| 日本中文在线一区| 91老师片黄在线观看| 精品国产露脸精彩对白| 一区二区三区欧美视频| 国产福利91精品一区| 7777精品伊人久久久大香线蕉超级流畅 | 91麻豆国产自产在线观看| 在线成人免费观看| 国产精品毛片大码女人| 久久精品国产亚洲高清剧情介绍| 99久久综合国产精品| 日韩午夜在线观看视频| 中文字幕在线不卡国产视频| 免费一级欧美片在线观看| 99久久99精品久久久久久| 久久日一线二线三线suv| 欧美久久久久久久久中文字幕| 欧美日韩国产精品成人| 日韩精品一级中文字幕精品视频免费观看 | 日本欧美在线观看| 91丨九色porny丨蝌蚪| 精品毛片乱码1区2区3区| 婷婷综合另类小说色区| 99久久久精品免费观看国产蜜| 欧美成人女星排名| 亚洲国产色一区| 91麻豆123| 成人欧美一区二区三区小说| 国产尤物一区二区在线| 日韩午夜精品电影| 亚洲123区在线观看| 在线免费亚洲电影| 亚洲色图欧美激情| 成人av在线观| 国产精品另类一区| 高清视频一区二区| 国产精品素人一区二区| 粉嫩av一区二区三区粉嫩 | 欧美色爱综合网| 亚洲一区在线电影| 欧美最新大片在线看| 亚洲美女淫视频| 欧美日韩在线精品一区二区三区激情 |