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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? mouse.cpp

?? 骨骼動畫....把魔獸模型解出的代碼..
?? CPP
字號:
//+-----------------------------------------------------------------------------
//| Included files
//+-----------------------------------------------------------------------------
#include "Mouse.h"


//+-----------------------------------------------------------------------------
//| Global objects
//+-----------------------------------------------------------------------------
MOUSE Mouse;
MOUSE ModelMouse;


//+-----------------------------------------------------------------------------
//| Constructor
//+-----------------------------------------------------------------------------
MOUSE::MOUSE()
{
	DirectInput = NULL;
	MouseDevice = NULL;

	DX = 0;
	DY = 0;
	DZ = 0;
}


//+-----------------------------------------------------------------------------
//| Destructor
//+-----------------------------------------------------------------------------
MOUSE::~MOUSE()
{
	//Empty
}


//+-----------------------------------------------------------------------------
//| Sets up the mouse
//+-----------------------------------------------------------------------------
BOOL MOUSE::Setup(HWND Window, BOOL Exclusive)
{
	DWORD Flags;

	Shutdown();

	if(FAILED(DirectInput8Create(GetModuleHandle(NULL), DIRECTINPUT_VERSION, IID_IDirectInput8, reinterpret_cast<VOID**>(&DirectInput), NULL)))
	{
		Error.SetMessage("Unable to create a DirectInput object!");
		return FALSE;
	}

	if(FAILED(DirectInput->CreateDevice(GUID_SysMouse, &MouseDevice, NULL)))
	{
		Error.SetMessage("Unable to create a DirectInput mouse device!");
		return FALSE;
	}

	if(FAILED(MouseDevice->SetDataFormat(&c_dfDIMouse2)))
	{
		Error.SetMessage("Unable to set the DirectInput mouse data format!");
		return FALSE;
	}

	Flags = DISCL_FOREGROUND | (Exclusive ? DISCL_EXCLUSIVE : DISCL_NONEXCLUSIVE);

	if(FAILED(MouseDevice->SetCooperativeLevel(Window, Flags)))
	{
		Error.SetMessage("Unable to set the DirectInput mouse cooperative level!");
		return FALSE;
	}

	MouseDevice->Acquire();

	return TRUE;
}


//+-----------------------------------------------------------------------------
//| Shuts down the mouse
//+-----------------------------------------------------------------------------
VOID MOUSE::Shutdown()
{
	if(MouseDevice != NULL) 
	{
		MouseDevice->Unacquire();
		MouseDevice->Release();
		MouseDevice = NULL;
	}

	if(DirectInput != NULL)
	{
		DirectInput->Release();
		DirectInput = NULL;
	}

	DX = 0;
	DY = 0;
	DZ = 0;
}


//+-----------------------------------------------------------------------------
//| Updates the mouse state
//+-----------------------------------------------------------------------------
VOID MOUSE::Update()
{
	INT i;
	DIMOUSESTATE2 MouseState;

	if(MouseDevice == NULL) return;

	ZeroMemory(&MouseState, sizeof(DIMOUSESTATE2));
    if(FAILED(MouseDevice->GetDeviceState(sizeof(DIMOUSESTATE2), &MouseState)))
	{
		MouseDevice->Acquire();

		ZeroMemory(&MouseState, sizeof(DIMOUSESTATE2));
		if(FAILED(MouseDevice->GetDeviceState(sizeof(DIMOUSESTATE2), &MouseState)))
		{
			return;
		}
    }

	DX = MouseState.lX;
	DY = MouseState.lY;
	DZ = MouseState.lZ;

	AnyButtonState = MOUSE_BUTTON_STATE();

	for(i = 0; i < NR_OF_MOUSE_BUTTONS; i++)
	{
		ButtonState[i].ButtonPressed = FALSE;
		ButtonState[i].ButtonReleased = FALSE;

		if(MouseState.rgbButtons[i])
		{
			if(!ButtonState[i].ButtonDown)
			{
				ButtonState[i].ButtonPressed = TRUE;
				AnyButtonState.ButtonPressed = TRUE;
			}

			ButtonState[i].ButtonDown = TRUE;
			AnyButtonState.ButtonDown = TRUE;
		}
		else
		{
			if(ButtonState[i].ButtonDown)
			{
				ButtonState[i].ButtonReleased = TRUE;
				AnyButtonState.ButtonReleased = TRUE;
			}

			ButtonState[i].ButtonDown = FALSE;
		}
	}
}


//+-----------------------------------------------------------------------------
//| Checks if a mouse button is down
//+-----------------------------------------------------------------------------
BOOL MOUSE::ButtonDown(INT Button) CONST
{
	if(!ValidButton(Button)) return FALSE;

	return ButtonState[Button].ButtonDown;
}


//+-----------------------------------------------------------------------------
//| Checks if a mouse button has just been pressed
//+-----------------------------------------------------------------------------
BOOL MOUSE::ButtonPressed(INT Button) CONST
{
	if(!ValidButton(Button)) return FALSE;

	return ButtonState[Button].ButtonPressed;
}


//+-----------------------------------------------------------------------------
//| Checks if a mouse button has just been released
//+-----------------------------------------------------------------------------
BOOL MOUSE::ButtonReleased(INT Button) CONST
{
	if(!ValidButton(Button)) return FALSE;

	return ButtonState[Button].ButtonReleased;
}


//+-----------------------------------------------------------------------------
//| Checks if any mouse button is down
//+-----------------------------------------------------------------------------
BOOL MOUSE::AnyButtonDown() CONST
{
	return AnyButtonState.ButtonDown;
}


//+-----------------------------------------------------------------------------
//| Checks if any mouse button has just been pressed
//+-----------------------------------------------------------------------------
BOOL MOUSE::AnyButtonPressed() CONST
{
	return AnyButtonState.ButtonPressed;
}


//+-----------------------------------------------------------------------------
//| Checks if any mouse button has just been released
//+-----------------------------------------------------------------------------
BOOL MOUSE::AnyButtonReleased() CONST
{
	return AnyButtonState.ButtonReleased;
}


//+-----------------------------------------------------------------------------
//| Returns the mouse DX
//+-----------------------------------------------------------------------------
INT MOUSE::GetDX() CONST
{
	return DX;
}


//+-----------------------------------------------------------------------------
//| Returns the mouse DY
//+-----------------------------------------------------------------------------
INT MOUSE::GetDY() CONST
{
	return DY;
}


//+-----------------------------------------------------------------------------
//| Returns the mouse DZ
//+-----------------------------------------------------------------------------
INT MOUSE::GetDZ() CONST
{
	return DZ;
}


//+-----------------------------------------------------------------------------
//| Checks if a mouse button is valid
//+-----------------------------------------------------------------------------
BOOL MOUSE::ValidButton(INT Button) CONST
{
	return (Button >= 0) && (Button < NR_OF_MOUSE_BUTTONS);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三区视频免费| 17c精品麻豆一区二区免费| 日韩免费福利电影在线观看| 日韩一区二区三区三四区视频在线观看 | 精品国产精品一区二区夜夜嗨| 国产欧美精品一区二区色综合| 依依成人精品视频| 日本不卡视频在线| 成人短视频下载| 欧美久久一二三四区| 久久蜜桃av一区精品变态类天堂| 国产精品欧美极品| 日本人妖一区二区| 97国产一区二区| 天使萌一区二区三区免费观看| 国产精品99久久久久久久女警| 色综合一区二区| 2024国产精品视频| 五月婷婷综合网| av在线一区二区| 久久蜜臀中文字幕| 日产国产高清一区二区三区| 成人成人成人在线视频| 欧美一级在线免费| 亚洲一区成人在线| 一本一本大道香蕉久在线精品| 日韩精品一区二区三区视频在线观看| 亚洲三级理论片| 国产黄人亚洲片| 精品欧美乱码久久久久久| 亚洲成a人在线观看| 9i看片成人免费高清| 中文字幕在线一区| 国产不卡在线视频| 国产午夜精品福利| 国产成人综合精品三级| 久久精品男人天堂av| 久88久久88久久久| 久久午夜国产精品| 国产精品综合二区| 久久精品视频一区| 成人av免费观看| 国产精品第四页| 在线精品视频免费观看| 亚洲愉拍自拍另类高清精品| 91啪亚洲精品| 一区二区在线免费观看| 欧美性xxxxxx少妇| 日韩不卡一二三区| 国产亚洲欧美中文| 色妹子一区二区| 丝袜美腿亚洲一区二区图片| 精品成人私密视频| 99久久久国产精品免费蜜臀| 亚洲欧美国产毛片在线| 欧美国产日韩亚洲一区| 成人精品视频网站| 亚洲国产一区二区三区青草影视| 日韩欧美精品三级| 久久综合五月天婷婷伊人| 成人午夜激情在线| 激情图片小说一区| 亚洲精品一二三| 8x8x8国产精品| 久久se精品一区精品二区| 国产精品久久久久永久免费观看 | 亚洲午夜私人影院| 久久综合狠狠综合| 欧美日韩一区久久| 91一区二区在线| 国精产品一区一区三区mba桃花 | 91.xcao| 97久久久精品综合88久久| 蜜臀a∨国产成人精品| 亚洲欧美国产毛片在线| 日韩西西人体444www| 一本在线高清不卡dvd| 岛国av在线一区| 国产精品久久久久桃色tv| 亚洲国产精品成人久久综合一区| 欧美成人综合网站| 色综合婷婷久久| 在线亚洲精品福利网址导航| 菠萝蜜视频在线观看一区| 国内精品视频666| 极品尤物av久久免费看| 蜜桃一区二区三区四区| 天天色图综合网| 午夜精品视频一区| 日韩黄色片在线观看| 五月婷婷另类国产| 成人午夜私人影院| 99精品黄色片免费大全| 色狠狠色狠狠综合| 色一区在线观看| 在线成人免费观看| 日韩一级免费观看| 久久久久国产精品麻豆| 国产精品美女视频| 亚洲精品成人在线| 综合在线观看色| 一区二区三区美女视频| 亚洲激情综合网| 成人免费一区二区三区视频| 亚洲精品成人在线| 日本美女一区二区三区| 精品一区二区三区的国产在线播放| 国产精品一区2区| 91久久人澡人人添人人爽欧美| 色偷偷久久人人79超碰人人澡| 99久久婷婷国产精品综合| 777久久久精品| 国产精品天天看| 亚洲成av人片在线观看无码| 另类成人小视频在线| av成人老司机| 欧美成人a视频| 亚洲综合丁香婷婷六月香| 麻豆国产91在线播放| 99精品国产99久久久久久白柏| 7777精品伊人久久久大香线蕉的| 久久久www成人免费无遮挡大片| 亚洲一区在线看| 成人激情小说乱人伦| 日韩一区二区免费电影| 亚洲视频 欧洲视频| 激情久久五月天| 欧美日韩精品一区二区三区蜜桃| 国产亚洲女人久久久久毛片| 天天免费综合色| 91久久精品一区二区| 中文字幕久久午夜不卡| 狠狠久久亚洲欧美| 欧美一区二区三区视频免费播放| 一区二区三区日韩在线观看| 国产馆精品极品| 久久无码av三级| 国产另类ts人妖一区二区| 日韩影院在线观看| 欧美私模裸体表演在线观看| 国产精品污网站| 国产精品一二三四五| 久久久精品综合| 国产精品99久久久久久有的能看| 日韩一区二区精品葵司在线 | 日本美女一区二区三区视频| 欧美亚洲丝袜传媒另类| 亚洲成人免费视| 欧美日韩国产综合一区二区三区 | 日本欧美在线观看| 精品福利一区二区三区免费视频| 国产精品亚洲午夜一区二区三区 | 国产麻豆日韩欧美久久| 日韩视频一区在线观看| 激情图区综合网| 国产精品人妖ts系列视频| 色综合一个色综合| 天堂影院一区二区| 精品国产91洋老外米糕| 国产精品亚洲一区二区三区妖精 | 国产一区二区不卡在线| 国产女同互慰高潮91漫画| 99在线精品观看| 天天影视网天天综合色在线播放| 欧美电视剧免费全集观看| 成人国产精品免费网站| 三级影片在线观看欧美日韩一区二区| 91精品福利在线一区二区三区| 国产麻豆视频精品| 18成人在线观看| 日韩女优电影在线观看| av午夜精品一区二区三区| 视频在线观看一区二区三区| 2024国产精品| 欧美日韩国产色站一区二区三区| 激情深爱一区二区| 一区二区三区在线免费| 2020国产精品| 欧美女孩性生活视频| 99国产精品久久久久久久久久| 美女诱惑一区二区| 激情深爱一区二区| 亚洲成人av资源| ●精品国产综合乱码久久久久 | 精品国产乱码久久久久久影片| 色综合中文字幕国产 | 精品国免费一区二区三区| 欧美视频日韩视频在线观看| 国产成人av影院| 国产一区视频网站| 久久国产精品无码网站| 夜夜夜精品看看| 一区二区三区产品免费精品久久75| 国产日产亚洲精品系列| 久久综合999| 欧美精品久久99| 欧洲在线/亚洲| 波多野结衣在线一区| 精品制服美女丁香| 亚洲大片一区二区三区|