| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | #include "..\ebase.h"
 | 
					
						
							| 
									
										
										
										
											2018-04-02 23:01:38 +08:00
										 |  |  |  | #include "..\etool.h"
 | 
					
						
							|  |  |  |  | #include "..\emanager.h"
 | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | #pragma comment(lib, "dinput8.lib")
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | using namespace e2d; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | static IDirectInput8* s_pDirectInput = nullptr;			// DirectInput <20>ӿڶ<D3BF><DAB6><EFBFBD>
 | 
					
						
							|  |  |  |  | static IDirectInputDevice8* s_KeyboardDevice = nullptr;	// <20><><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD>ӿ<EFBFBD>
 | 
					
						
							|  |  |  |  | static char s_KeyBuffer[256] = { 0 };					// <20><><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̰<EFBFBD><CCB0><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-02-02 10:06:29 +08:00
										 |  |  |  | static char s_KeyRecordBuffer[256] = { 0 };				// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | static IDirectInputDevice8* s_MouseDevice = nullptr;	// <20><><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD>ӿ<EFBFBD>
 | 
					
						
							|  |  |  |  | static DIMOUSESTATE s_MouseState;						// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>洢<EFBFBD>ṹ<EFBFBD><E1B9B9>
 | 
					
						
							| 
									
										
										
										
											2018-02-02 10:06:29 +08:00
										 |  |  |  | static DIMOUSESTATE s_MouseRecordState;					// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | static POINT s_MousePosition;							// <20><><EFBFBD><EFBFBD>λ<EFBFBD>ô洢<C3B4>ṹ<EFBFBD><E1B9B9>
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | bool Input::__init() | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | { | 
					
						
							|  |  |  |  | 	ZeroMemory(s_KeyBuffer, sizeof(s_KeyBuffer)); | 
					
						
							| 
									
										
										
										
											2018-02-02 10:06:29 +08:00
										 |  |  |  | 	ZeroMemory(s_KeyRecordBuffer, sizeof(s_KeyRecordBuffer)); | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | 	ZeroMemory(&s_MouseState, sizeof(s_MouseState)); | 
					
						
							| 
									
										
										
										
											2018-02-02 10:06:29 +08:00
										 |  |  |  | 	ZeroMemory(&s_MouseRecordState, sizeof(s_MouseRecordState)); | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><>ʼ<EFBFBD><CABC><EFBFBD>ӿڶ<D3BF><DAB6><EFBFBD>
 | 
					
						
							|  |  |  |  | 	HRESULT hr = DirectInput8Create( | 
					
						
							|  |  |  |  | 		HINST_THISCOMPONENT, | 
					
						
							|  |  |  |  | 		DIRECTINPUT_VERSION, | 
					
						
							|  |  |  |  | 		IID_IDirectInput8, | 
					
						
							|  |  |  |  | 		(void**)&s_pDirectInput, | 
					
						
							| 
									
										
										
										
											2018-02-01 22:07:44 +08:00
										 |  |  |  | 		nullptr | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	if (SUCCEEDED(hr)) | 
					
						
							|  |  |  |  | 	{ | 
					
						
							|  |  |  |  | 		// <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>豸
 | 
					
						
							|  |  |  |  | 		hr = s_pDirectInput->CreateDevice( | 
					
						
							|  |  |  |  | 			GUID_SysKeyboard, | 
					
						
							|  |  |  |  | 			&s_KeyboardDevice, | 
					
						
							| 
									
										
										
										
											2018-02-01 22:07:44 +08:00
										 |  |  |  | 			nullptr | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | 		); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 		if (SUCCEEDED(hr)) | 
					
						
							|  |  |  |  | 		{ | 
					
						
							|  |  |  |  | 			s_KeyboardDevice->SetCooperativeLevel( | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 				Window::getHWnd(), | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | 				DISCL_FOREGROUND | DISCL_NONEXCLUSIVE | 
					
						
							|  |  |  |  | 			); | 
					
						
							|  |  |  |  | 			s_KeyboardDevice->SetDataFormat( | 
					
						
							|  |  |  |  | 				&c_dfDIKeyboard); | 
					
						
							|  |  |  |  | 			s_KeyboardDevice->Acquire(); | 
					
						
							|  |  |  |  | 			s_KeyboardDevice->Poll(); | 
					
						
							|  |  |  |  | 		} | 
					
						
							|  |  |  |  | 		else | 
					
						
							|  |  |  |  | 		{ | 
					
						
							| 
									
										
										
										
											2018-03-06 09:56:17 +08:00
										 |  |  |  | 			MessageBox(nullptr, L"Keyboard not found!", L"Error", MB_ICONERROR | MB_OK); | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 			Game::quit(); | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | 			return false; | 
					
						
							|  |  |  |  | 		} | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	if (SUCCEEDED(hr)) | 
					
						
							|  |  |  |  | 	{ | 
					
						
							|  |  |  |  | 		// <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>豸
 | 
					
						
							| 
									
										
										
										
											2018-02-01 22:07:44 +08:00
										 |  |  |  | 		hr = s_pDirectInput->CreateDevice(GUID_SysMouse, &s_MouseDevice, nullptr); | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 		if (SUCCEEDED(hr)) | 
					
						
							|  |  |  |  | 		{ | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 			s_MouseDevice->SetCooperativeLevel(Window::getHWnd(), DISCL_FOREGROUND | DISCL_NONEXCLUSIVE); | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | 			s_MouseDevice->SetDataFormat(&c_dfDIMouse); | 
					
						
							|  |  |  |  | 			s_MouseDevice->Acquire(); | 
					
						
							|  |  |  |  | 			s_MouseDevice->Poll(); | 
					
						
							|  |  |  |  | 		} | 
					
						
							|  |  |  |  | 		else | 
					
						
							|  |  |  |  | 		{ | 
					
						
							| 
									
										
										
										
											2018-03-06 09:56:17 +08:00
										 |  |  |  | 			MessageBox(nullptr, L"Mouse not found!", L"Error", MB_ICONERROR | MB_OK); | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | 			return false; | 
					
						
							|  |  |  |  | 		} | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	return SUCCEEDED(hr); | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-11 23:56:40 +08:00
										 |  |  |  | void Input::__uninit() | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | 	if (s_KeyboardDevice) | 
					
						
							|  |  |  |  | 		s_KeyboardDevice->Unacquire(); | 
					
						
							|  |  |  |  | 	if (s_MouseDevice) | 
					
						
							|  |  |  |  | 		s_MouseDevice->Unacquire(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	SafeReleaseInterface(&s_MouseDevice); | 
					
						
							|  |  |  |  | 	SafeReleaseInterface(&s_KeyboardDevice); | 
					
						
							|  |  |  |  | 	SafeReleaseInterface(&s_pDirectInput); | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | void e2d::Input::__update() | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | 	Input::__updateDeviceState(); | 
					
						
							| 
									
										
										
										
											2018-03-31 18:12:01 +08:00
										 |  |  |  | 	InputManager::__update(); | 
					
						
							| 
									
										
										
										
											2018-03-11 23:56:40 +08:00
										 |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | void Input::__updateDeviceState() | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | { | 
					
						
							|  |  |  |  | 	if (s_KeyboardDevice) | 
					
						
							|  |  |  |  | 	{ | 
					
						
							|  |  |  |  | 		HRESULT hr = s_KeyboardDevice->Poll(); | 
					
						
							|  |  |  |  | 		if (FAILED(hr)) | 
					
						
							|  |  |  |  | 		{ | 
					
						
							|  |  |  |  | 			hr = s_KeyboardDevice->Acquire(); | 
					
						
							|  |  |  |  | 			while (hr == DIERR_INPUTLOST) | 
					
						
							|  |  |  |  | 				hr = s_KeyboardDevice->Acquire(); | 
					
						
							|  |  |  |  | 		} | 
					
						
							|  |  |  |  | 		else | 
					
						
							|  |  |  |  | 		{ | 
					
						
							|  |  |  |  | 			for (int i = 0; i < 256; i++) | 
					
						
							| 
									
										
										
										
											2018-02-02 10:06:29 +08:00
										 |  |  |  | 				s_KeyRecordBuffer[i] = s_KeyBuffer[i]; | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 			s_KeyboardDevice->GetDeviceState(sizeof(s_KeyBuffer), (void**)&s_KeyBuffer); | 
					
						
							|  |  |  |  | 		} | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	if (s_MouseDevice) | 
					
						
							|  |  |  |  | 	{ | 
					
						
							|  |  |  |  | 		HRESULT hr = s_MouseDevice->Poll(); | 
					
						
							|  |  |  |  | 		if (FAILED(hr)) | 
					
						
							|  |  |  |  | 		{ | 
					
						
							|  |  |  |  | 			hr = s_MouseDevice->Acquire(); | 
					
						
							|  |  |  |  | 			while (hr == DIERR_INPUTLOST) | 
					
						
							|  |  |  |  | 				hr = s_MouseDevice->Acquire(); | 
					
						
							|  |  |  |  | 		} | 
					
						
							|  |  |  |  | 		else | 
					
						
							|  |  |  |  | 		{ | 
					
						
							| 
									
										
										
										
											2018-02-02 10:06:29 +08:00
										 |  |  |  | 			s_MouseRecordState = s_MouseState; | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | 			s_MouseDevice->GetDeviceState(sizeof(s_MouseState), (void**)&s_MouseState); | 
					
						
							|  |  |  |  | 		} | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	GetCursorPos(&s_MousePosition); | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 	ScreenToClient(Window::getHWnd(), &s_MousePosition); | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-01 23:08:11 +08:00
										 |  |  |  | bool Input::isKeyDown(int nKeyCode) | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | { | 
					
						
							| 
									
										
										
										
											2018-03-31 22:34:18 +08:00
										 |  |  |  | 	if (s_KeyBuffer[static_cast<int>(nKeyCode)] & 0x80) | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | 		return true; | 
					
						
							|  |  |  |  | 	return false; | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-01 23:08:11 +08:00
										 |  |  |  | bool Input::isKeyPress(int nKeyCode) | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | { | 
					
						
							| 
									
										
										
										
											2018-03-31 22:34:18 +08:00
										 |  |  |  | 	if ((s_KeyBuffer[static_cast<int>(nKeyCode)] & 0x80) &&  | 
					
						
							|  |  |  |  | 		!(s_KeyRecordBuffer[static_cast<int>(nKeyCode)] & 0x80)) | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | 		return true; | 
					
						
							|  |  |  |  | 	return false; | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-01 23:08:11 +08:00
										 |  |  |  | bool Input::isKeyRelease(int nKeyCode) | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | { | 
					
						
							| 
									
										
										
										
											2018-03-31 22:34:18 +08:00
										 |  |  |  | 	if (!(s_KeyBuffer[static_cast<int>(nKeyCode)] & 0x80) &&  | 
					
						
							|  |  |  |  | 		(s_KeyRecordBuffer[static_cast<int>(nKeyCode)] & 0x80)) | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | 		return true; | 
					
						
							|  |  |  |  | 	return false; | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | bool Input::isMouseLButtonDown() | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | { | 
					
						
							|  |  |  |  | 	if (s_MouseState.rgbButtons[0] & 0x80) | 
					
						
							|  |  |  |  | 		return true; | 
					
						
							|  |  |  |  | 	return false; | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | bool Input::isMouseRButtonDown() | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | { | 
					
						
							|  |  |  |  | 	if (s_MouseState.rgbButtons[1] & 0x80) | 
					
						
							|  |  |  |  | 		return true; | 
					
						
							|  |  |  |  | 	return false; | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | bool Input::isMouseMButtonDown() | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | { | 
					
						
							|  |  |  |  | 	if (s_MouseState.rgbButtons[2] & 0x80) | 
					
						
							|  |  |  |  | 		return true; | 
					
						
							|  |  |  |  | 	return false; | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | bool Input::isMouseLButtonPress() | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | { | 
					
						
							| 
									
										
										
										
											2018-02-02 10:06:29 +08:00
										 |  |  |  | 	if ((s_MouseState.rgbButtons[0] & 0x80) && !(s_MouseRecordState.rgbButtons[0] & 0x80)) | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | 		return true; | 
					
						
							|  |  |  |  | 	return false; | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | bool Input::isMouseRButtonPress() | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | { | 
					
						
							| 
									
										
										
										
											2018-02-02 10:06:29 +08:00
										 |  |  |  | 	if ((s_MouseState.rgbButtons[1] & 0x80) && !(s_MouseRecordState.rgbButtons[1] & 0x80)) | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | 		return true; | 
					
						
							|  |  |  |  | 	return false; | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | bool Input::isMouseMButtonPress() | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | { | 
					
						
							| 
									
										
										
										
											2018-02-02 10:06:29 +08:00
										 |  |  |  | 	if ((s_MouseState.rgbButtons[2] & 0x80) && !(s_MouseRecordState.rgbButtons[2] & 0x80)) | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | 		return true; | 
					
						
							|  |  |  |  | 	return false; | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | bool Input::isMouseLButtonRelease() | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | { | 
					
						
							| 
									
										
										
										
											2018-02-02 10:06:29 +08:00
										 |  |  |  | 	if (!(s_MouseState.rgbButtons[0] & 0x80) && (s_MouseRecordState.rgbButtons[0] & 0x80)) | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | 		return true; | 
					
						
							|  |  |  |  | 	return false; | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | bool Input::isMouseRButtonRelease() | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | { | 
					
						
							| 
									
										
										
										
											2018-02-02 10:06:29 +08:00
										 |  |  |  | 	if (!(s_MouseState.rgbButtons[1] & 0x80) && (s_MouseRecordState.rgbButtons[1] & 0x80)) | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | 		return true; | 
					
						
							|  |  |  |  | 	return false; | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | bool Input::isMouseMButtonRelease() | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | { | 
					
						
							| 
									
										
										
										
											2018-02-02 10:06:29 +08:00
										 |  |  |  | 	if (!(s_MouseState.rgbButtons[2] & 0x80) && (s_MouseRecordState.rgbButtons[2] & 0x80)) | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | 		return true; | 
					
						
							|  |  |  |  | 	return false; | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  |  | double Input::getMouseX() | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | { | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  |  | 	return (double)s_MousePosition.x; | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  |  | double Input::getMouseY() | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | { | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  |  | 	return (double)s_MousePosition.y; | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | Point Input::getMousePos() | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | { | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  |  | 	return Point((double)s_MousePosition.x, (double)s_MousePosition.y); | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  |  | double Input::getMouseDeltaX() | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | { | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  |  | 	return (double)s_MouseState.lX; | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  |  | double Input::getMouseDeltaY() | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | { | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  |  | 	return (double)s_MouseState.lY; | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  |  | double Input::getMouseDeltaZ() | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | { | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  |  | 	return (double)s_MouseState.lZ; | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | } |