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

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

?? cardcontrol.cpp

?? 網狐2008最新版本梭哈游戲代碼!很難得到的
?? CPP
字號:
#include "StdAfx.h"
#include "GameClient.h"
#include "CardControl.h"

//////////////////////////////////////////////////////////////////////////
//宏定義

#define INVALID_ITEM				0xFFFF								//無效子項

//////////////////////////////////////////////////////////////////////////

//構造函數
CCardControl::CCardControl()
{
	//狀態變量
	m_bPositively=false;
	m_bDisplayHead=false;
	m_nXOrgDistance=DEF_X_DISTANCE;
	m_nXDistance = DEF_X_DISTANCE;

	//
	m_bMoving = false;
	m_nYStep = 0;
	m_nYMove = 0;
	m_cbShowIndex = 0xff;

	//撲克數據
	m_wCardCount=0;
	ZeroMemory(m_CardItem,sizeof(m_CardItem));

	//位置變量
	m_YCollocateMode=enYTop;
	m_XCollocateMode=enXLeft;
	m_BenchmarkPos.SetPoint(0,0);

	//加載資源
	m_ImageCard.SetLoadInfo(IDB_CARD,AfxGetInstanceHandle());

	//獲取大小
	CImageHandle HandleImage(&m_ImageCard);
	m_CardSize.SetSize(m_ImageCard.GetWidth()/13,m_ImageCard.GetHeight()/5);

	return;
}

//析構函數
CCardControl::~CCardControl()
{
}

//獲取撲克
WORD CCardControl::GetCardData(BYTE cbCardData[], WORD wBufferCount)
{
	//效驗參數
	WORD wCardCount = __min(wBufferCount,m_wCardCount);

	//拷貝撲克
	for( WORD i = 0; i < wCardCount; i++ )
		cbCardData[i] = m_CardItem[i].cbCardData;

	return m_wCardCount;
}

//設置撲克
bool CCardControl::SetCardData(const BYTE cbCardData[], WORD wCardCount)
{
	//效驗參數
	ASSERT(wCardCount<=CountArray(m_CardItem));
	if (wCardCount>CountArray(m_CardItem)) return false;

	//設置變量
	m_wCardCount=wCardCount;
	for( WORD i = 0; i < wCardCount; i++ )
	{
		m_CardItem[i].cbCardData = cbCardData[i];
		m_CardItem[i].bDisplay = (i==0)?m_bDisplayHead:true;
	}

	m_bMoving = false;
	m_nXDistance = m_nXOrgDistance;
	m_cbShowIndex = 0xff;

	return true;
}

//基準位置
VOID CCardControl::SetBasicStation(const CPoint & BenchmarkPos, enXCollocateMode XCollocateMode, enYCollocateMode YCollocateMode)
{
	//設置變量
	m_BenchmarkPos=BenchmarkPos;
	m_XCollocateMode=XCollocateMode;
	m_YCollocateMode=YCollocateMode;

	m_bMoving = false;
	m_nXDistance = m_nXOrgDistance;
	m_cbShowIndex = 0xff;

	return;
}

//繪畫撲克
VOID CCardControl::DrawCardControl(CDC * pDC)
{
	//加載位圖
	CImageHandle HandleCard(&m_ImageCard);

	//獲取位置
	CPoint OriginPoint;
	GetOriginPoint(OriginPoint);

	//繪畫撲克
	INT nXImagePos=0,nYImagePos=0;
	BYTE cbCardData = 0;
	if( !m_bMoving || m_nXDistance > 0 )
	{
		for (WORD i=0;i<m_wCardCount;i++)
		{
			//變量定義
			cbCardData=m_CardItem[i].cbCardData;

			//圖片位置
			if ( m_CardItem[i].bDisplay && cbCardData != 0 && cbCardData != 0xFF )
			{
				nXImagePos=((cbCardData&CARD_MASK_VALUE)-1)*m_CardSize.cx;
				nYImagePos=((cbCardData&CARD_MASK_COLOR)>>4)*m_CardSize.cy;
			}
			else
			{
				nXImagePos=m_CardSize.cx*2;
				nYImagePos=m_CardSize.cy*4;
			}

			//繪畫撲克
			m_ImageCard.AlphaDrawImage(pDC,OriginPoint.x+m_nXDistance*i,OriginPoint.y,m_CardSize.cx,m_CardSize.cy,nXImagePos,nYImagePos,RGB(255,0,255));
		}
	}
	else
	{
		ASSERT( m_bMoving && m_cbShowIndex < m_wCardCount );
		cbCardData = m_CardItem[m_cbShowIndex].cbCardData;
		ASSERT( cbCardData != 0 );
		nXImagePos=((cbCardData&CARD_MASK_VALUE)-1)*m_CardSize.cx;
		nYImagePos=((cbCardData&CARD_MASK_COLOR)>>4)*m_CardSize.cy;
		INT nYMove = __min(m_nYMove,33);
		m_ImageCard.AlphaDrawImage( pDC,OriginPoint.x,OriginPoint.y-nYMove,m_CardSize.cx,m_CardSize.cy,nXImagePos,nYImagePos,RGB(255,0,255) );
		nXImagePos=m_CardSize.cx*2;
		nYImagePos=m_CardSize.cy*4;
		m_ImageCard.AlphaDrawImage( pDC,OriginPoint.x,OriginPoint.y,m_CardSize.cx,m_CardSize.cy,nXImagePos,nYImagePos,RGB(255,0,255) );
	}

	return;
}

//光標消息
bool CCardControl::OnEventSetCursor(CPoint Point)
{
	//光標處理
	if (m_bPositively==true&&!m_bMoving)
	{
		//獲取索引
		WORD wHoverItem=SwitchCardPoint(Point);

		//更新判斷
		if (wHoverItem!=INVALID_ITEM&&!m_CardItem[wHoverItem].bDisplay)
		{
			SetCursor(LoadCursor(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDC_CARD_CUR)));
			return true;
		}
	}

	return false;
}

//鼠標消息
bool CCardControl::OnEventLeftMouseDown(CPoint Point)
{
	//光標處理
	if ((m_bPositively==true)&&!m_bMoving)
	{
		//獲取索引
		WORD wHoverItem=SwitchCardPoint(Point);

		if( wHoverItem != INVALID_ITEM && !m_CardItem[wHoverItem].bDisplay )
		{
			m_cbShowIndex = (BYTE)wHoverItem;
			return true;
		}
	}

	return false;
}

//
bool CCardControl::OnEventLeftMouseUp(CPoint Point)
{
	//光標處理
	if ((m_bPositively==true)&&!m_bMoving)
	{
		//獲取索引
		WORD wHoverItem=SwitchCardPoint(Point);

		if( wHoverItem != INVALID_ITEM )
		{
			m_cbShowIndex = (BYTE)wHoverItem;
			return true;
		}
	}
	return false;
}

//獲取大小
VOID CCardControl::GetControlSize(CSize & ControlSize)
{
	//獲取大小
	ControlSize.cy=m_CardSize.cy;
	ControlSize.cx=(m_wCardCount>0)?(m_CardSize.cx+(m_wCardCount-1)*m_nXDistance):0;

	return;
}

//索引切換
WORD CCardControl::SwitchCardPoint(CPoint & MousePoint)
{
	if( m_bMoving ) return INVALID_ITEM;
	//獲取位置
	CSize ControlSize;
	CPoint OriginPoint;
	GetControlSize(ControlSize);
	GetOriginPoint(OriginPoint);

	//基準位置
	INT nXPos=MousePoint.x-OriginPoint.x;
	INT nYPos=MousePoint.y-OriginPoint.y;

	//越界判斷
	if ((nXPos<=0)||(nXPos>=ControlSize.cx)) return INVALID_ITEM;
	if ((nYPos<=0)||(nYPos>=ControlSize.cy)) return INVALID_ITEM;

	//計算索引
	WORD wCardIndex=nXPos/m_nXDistance;
	if (wCardIndex>=m_wCardCount) wCardIndex=(m_wCardCount-1);

	return wCardIndex;
}

//獲取原點
VOID CCardControl::GetOriginPoint(CPoint & OriginPoint)
{
	//獲取位置
	CSize ControlSize;
	GetControlSize(ControlSize);

	//橫向位置
	switch (m_XCollocateMode)
	{
	case enXLeft:	{ OriginPoint.x=m_BenchmarkPos.x; break; }
	case enXCenter: { OriginPoint.x=m_BenchmarkPos.x-ControlSize.cx/2; break; }
	case enXRight:	{ OriginPoint.x=m_BenchmarkPos.x-ControlSize.cx; break; }
	}

	//豎向位置
	switch (m_YCollocateMode)
	{
	case enYTop:	{ OriginPoint.y=m_BenchmarkPos.y; break; }
	case enYCenter: { OriginPoint.y=m_BenchmarkPos.y-ControlSize.cy/2; break; }
	case enYBottom: { OriginPoint.y=m_BenchmarkPos.y-ControlSize.cy; break; }
	}

	return;
}

//獲取牌尾位置
CPoint CCardControl::GetTailPos()
{
	CPoint ptTail;

	//計算大小
	INT nSpaceWidth = m_wCardCount*m_nXDistance;
	CSize ControlSize;
	GetControlSize(ControlSize);

	//橫向位置
	switch (m_XCollocateMode)
	{
	case enXLeft:	{ ptTail.x=m_BenchmarkPos.x+nSpaceWidth; break; }
	case enXCenter: { ptTail.x=m_BenchmarkPos.x-ControlSize.cx/2+nSpaceWidth; break; }
	case enXRight:	{ ptTail.x=m_BenchmarkPos.x-ControlSize.cx+nSpaceWidth; break; }
	}

	//豎向位置
	switch (m_YCollocateMode)
	{
	case enYTop:	{ ptTail.y=m_BenchmarkPos.y; break; }
	case enYCenter: { ptTail.y=m_BenchmarkPos.y-ControlSize.cy/2; break; }
	case enYBottom: { ptTail.y=m_BenchmarkPos.y-ControlSize.cy; break; }
	}

	return ptTail;
}

//
bool CCardControl::BeginMoveCard()
{
	if( m_bMoving ) return false;

	ASSERT( m_cbShowIndex < m_wCardCount );
	if( m_cbShowIndex >= m_wCardCount ) return false;

	m_bMoving = true;
	m_nYStep = MOVE_STEP_Y;
	m_nYMove = 0;

	return true;
}

//
bool CCardControl::PlayMoveCard()
{
	if( !m_bMoving ) return false;

	if( m_nXDistance > 0 )
		m_nXDistance = __max(m_nXDistance-MOVE_STEP_X,0);
	else
	{
		if( m_nYMove >= MAX_MOVE_Y ) m_nYStep = -m_nYStep;
		m_nYMove += m_nYStep;

		if( m_nYMove <= 0 )
		{
			m_bMoving = false;
			m_nXDistance = m_nXOrgDistance;
			m_cbShowIndex = 0xff;
		}
	}

	return true;
}

//
VOID CCardControl::SetXDistance( UINT nXDistance )
{
	m_nXOrgDistance = nXDistance;
}

//
VOID CCardControl::AllowPositively( bool bPositively )
{
	m_bPositively = bPositively;
	m_bMoving = false;
	m_nXDistance = m_nXOrgDistance;
	m_cbShowIndex = 0xff;
}

//
VOID CCardControl::ShowFirstCard( bool bDisplayHead )
{
	m_bDisplayHead = bDisplayHead;
	if( m_wCardCount > 0 )
		m_CardItem[0].bDisplay = bDisplayHead;
	m_bMoving = false;
	m_nXDistance = m_nXOrgDistance;
	m_cbShowIndex = 0xff;
}

//
void CCardControl::SetDispalyCard( WORD wCardIndex,bool bDisplay )
{
	ASSERT( wCardIndex < m_wCardCount );
	if( wCardIndex >= m_wCardCount ) return;

	m_CardItem[wCardIndex].bDisplay = bDisplay;
}


//////////////////////////////////////////////////////////////////////////

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品系列在线观看| 日韩免费视频一区二区| 欧美一级久久久| 国产精品污污网站在线观看| 日韩va亚洲va欧美va久久| 成人动漫视频在线| 亚洲精品一区二区三区福利| 亚洲电影一级黄| 91在线播放网址| 欧美国产一区在线| 精品无人码麻豆乱码1区2区| 欧美日韩一区二区三区在线看| 精品免费视频一区二区| 天天影视网天天综合色在线播放| 懂色av一区二区在线播放| 日韩视频中午一区| 午夜亚洲国产au精品一区二区| 色激情天天射综合网| 国产欧美日韩三级| 国产精品一区二区果冻传媒| 精品粉嫩aⅴ一区二区三区四区| 天天综合天天综合色| 欧美亚一区二区| 一区二区三区资源| 91日韩在线专区| 亚洲私人黄色宅男| 白白色 亚洲乱淫| 国产精品久久久久精k8| 成人午夜精品在线| 国产精品欧美久久久久无广告| 国产成人免费9x9x人网站视频| 久久久久久黄色| 国产高清精品网站| 国产精品福利一区二区三区| 成人免费看黄yyy456| 中文字幕在线不卡一区二区三区| 不卡的看片网站| 亚洲精品老司机| 欧美日韩精品欧美日韩精品| 日本强好片久久久久久aaa| 欧美一区二区三区在线电影| 久久av中文字幕片| 国产婷婷一区二区| 成人a区在线观看| 亚洲日穴在线视频| 欧美日韩不卡一区二区| 美日韩一区二区三区| 久久综合五月天婷婷伊人| 国产乱码一区二区三区| 中文字幕在线观看不卡| 色婷婷精品久久二区二区蜜臀av | 久久精工是国产品牌吗| 欧美精品一区视频| 成人一区二区三区| 亚洲影院在线观看| 精品欧美乱码久久久久久| 懂色av一区二区夜夜嗨| 亚洲黄色在线视频| 日韩欧美电影一二三| 成人免费毛片a| 五月天激情综合| 久久久国产精品午夜一区ai换脸| 91在线免费看| 日本欧美在线观看| 国产精品成人免费| 欧美美女激情18p| 国产成人午夜电影网| 亚洲一二三四在线| 久久先锋资源网| 日本高清不卡一区| 国产一区二区网址| 亚洲尤物在线视频观看| 久久久久久久久久电影| 欧美天天综合网| 成人免费视频视频在线观看免费| 亚洲自拍偷拍麻豆| 久久久亚洲综合| 欧美日韩黄视频| 成人av资源站| 国产一区二区免费视频| 亚洲国产中文字幕| 亚洲国产精华液网站w| 欧美一区日韩一区| 在线视频你懂得一区| 成人午夜精品在线| 国产在线播精品第三| 日韩一区精品视频| 一区二区国产盗摄色噜噜| 国产精品网站在线| 久久色.com| 日韩精品一区在线| 欧美精品aⅴ在线视频| 色偷偷久久人人79超碰人人澡| 裸体一区二区三区| 亚洲成a人v欧美综合天堂下载| 最新热久久免费视频| 国产亚洲成av人在线观看导航| 91精品国产综合久久久久久久久久| 不卡av在线网| 成人一级片在线观看| 国产高清亚洲一区| 极品美女销魂一区二区三区 | 欧美日韩视频第一区| 色综合亚洲欧洲| 99久久久久久| 99re在线精品| 91在线视频播放| 色吧成人激情小说| 色拍拍在线精品视频8848| 色综合久久久久综合体桃花网| 成人avav在线| 91在线看国产| 91福利视频网站| 欧美色综合网站| 91精品国产乱码| 精品国产一区二区三区忘忧草| 日韩欧美精品在线| 精品盗摄一区二区三区| 欧美大片一区二区三区| 精品国产第一区二区三区观看体验| 日韩免费电影网站| 久久久亚洲高清| 国产精品国产三级国产三级人妇 | 色综合亚洲欧洲| 欧洲av一区二区嗯嗯嗯啊| 欧美亚洲一区二区在线| 欧美日韩三级在线| 69av一区二区三区| 精品乱人伦一区二区三区| 日韩美女天天操| 国产色一区二区| 亚洲人成影院在线观看| 亚洲一区二区三区视频在线| 日韩国产一二三区| 国产在线麻豆精品观看| 丁香天五香天堂综合| 在线看国产日韩| 日韩视频免费直播| 国产精品卡一卡二| 亚洲成人1区2区| 国产综合色在线视频区| 99久久免费精品| 欧美日韩成人综合在线一区二区 | 国产乱子伦一区二区三区国色天香| 成人污污视频在线观看| 在线看日韩精品电影| 欧美一区二区三区在线看| 欧美国产日产图区| 亚洲成人激情综合网| 国产很黄免费观看久久| 欧美性猛交xxxx乱大交退制版| 日韩欧美国产精品一区| 亚洲天堂免费看| 国产在线精品视频| 欧美亚洲国产一区在线观看网站| 欧美tk—视频vk| 亚洲综合色成人| 国产精品123| 欧美一区二区三区不卡| 中文字幕一区二区不卡| 久久久精品国产免费观看同学| 日本一区二区三区dvd视频在线| 九一九一国产精品| 波多野结衣中文字幕一区二区三区 | 日本韩国欧美一区二区三区| 精品久久免费看| 性欧美疯狂xxxxbbbb| 成人黄色软件下载| 欧美大白屁股肥臀xxxxxx| 亚洲免费看黄网站| 国产精品一二三四五| 91麻豆精品国产自产在线观看一区 | 91老司机福利 在线| 日韩欧美在线123| 一区二区三区加勒比av| 成人丝袜高跟foot| 精品av综合导航| 日产国产欧美视频一区精品| 99re在线视频这里只有精品| 久久久99精品久久| 激情文学综合丁香| 在线播放日韩导航| 亚洲已满18点击进入久久| 97国产一区二区| 国产精品无遮挡| 成人av网站大全| 国产精品久久毛片av大全日韩| 国产一区不卡视频| 欧美大度的电影原声| 美女免费视频一区| 69堂成人精品免费视频| 亚洲成人一区二区在线观看| 在线免费视频一区二区| 亚洲综合久久久| 欧美日韩一区高清| 亚洲资源在线观看| 欧美日韩国产综合一区二区| 亚洲一区日韩精品中文字幕| 色www精品视频在线观看| 亚洲欧美色一区|