| 
									
										
										
										
											2018-08-14 00:41:59 +08:00
										 |  |  |  | #pragma once
 | 
					
						
							| 
									
										
										
										
											2018-09-05 13:33:39 +08:00
										 |  |  |  | #include "e2dutil.h"
 | 
					
						
							| 
									
										
										
										
											2018-08-14 00:41:59 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | namespace e2d | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
 | 
					
						
							|  |  |  |  | class KeyEvent | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | public: | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 	enum class Type : int | 
					
						
							|  |  |  |  | 	{ | 
					
						
							|  |  |  |  | 		Down = 0x0100,	// <20><><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 		Up				// ̧<><CCA7>
 | 
					
						
							|  |  |  |  | 	}; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | public: | 
					
						
							|  |  |  |  | 	explicit KeyEvent( | 
					
						
							|  |  |  |  | 		HWND hWnd, | 
					
						
							|  |  |  |  | 		UINT message, | 
					
						
							| 
									
										
										
										
											2018-09-04 22:42:34 +08:00
										 |  |  |  | 		WPARAM w_param, | 
					
						
							|  |  |  |  | 		LPARAM l_param | 
					
						
							| 
									
										
										
										
											2018-08-14 00:41:59 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
 | 
					
						
							| 
									
										
										
										
											2018-09-04 22:42:34 +08:00
										 |  |  |  | 	KeyCode GetCode() const; | 
					
						
							| 
									
										
										
										
											2018-08-14 00:41:59 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-09-04 22:42:34 +08:00
										 |  |  |  | 	int GetCount() const; | 
					
						
							| 
									
										
										
										
											2018-08-14 00:41:59 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><>ȡ<EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-09-04 22:42:34 +08:00
										 |  |  |  | 	KeyEvent::Type GetType() const; | 
					
						
							| 
									
										
										
										
											2018-08-14 00:41:59 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// VK <20><>ֵת<D6B5><D7AA>
 | 
					
						
							| 
									
										
										
										
											2018-09-04 22:42:34 +08:00
										 |  |  |  | 	static KeyCode ToKeyCode( | 
					
						
							|  |  |  |  | 		WPARAM w_param | 
					
						
							| 
									
										
										
										
											2018-08-14 00:41:59 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | protected: | 
					
						
							| 
									
										
										
										
											2018-09-04 22:42:34 +08:00
										 |  |  |  | 	int				count_; | 
					
						
							|  |  |  |  | 	KeyCode			code_; | 
					
						
							|  |  |  |  | 	KeyEvent::Type	type_; | 
					
						
							| 
									
										
										
										
											2018-08-14 00:41:59 +08:00
										 |  |  |  | }; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
 | 
					
						
							|  |  |  |  | class MouseEvent | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | public: | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 	enum class Type : int | 
					
						
							|  |  |  |  | 	{ | 
					
						
							|  |  |  |  | 		Move = 0x0200,		// <20><><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD>
 | 
					
						
							|  |  |  |  | 		LeftDown,			// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 		LeftUp,				// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̧<EFBFBD><CCA7>
 | 
					
						
							|  |  |  |  | 		LeftDoubleClick,	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˫<EFBFBD><CBAB>
 | 
					
						
							|  |  |  |  | 		RightDown,			// <20><><EFBFBD><EFBFBD><EFBFBD>Ҽ<EFBFBD><D2BC><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 		RightUp,			// <20><><EFBFBD><EFBFBD><EFBFBD>Ҽ<EFBFBD>̧<EFBFBD><CCA7>
 | 
					
						
							|  |  |  |  | 		RightDoubleClick,	// <20><><EFBFBD><EFBFBD><EFBFBD>Ҽ<EFBFBD>˫<EFBFBD><CBAB>
 | 
					
						
							|  |  |  |  | 		MiddleDown,			// <20><><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 		MiddleUp,			// <20><><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD>̧<EFBFBD><CCA7>
 | 
					
						
							|  |  |  |  | 		MiddleDoubleClick,	// <20><><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD>˫<EFBFBD><CBAB>
 | 
					
						
							|  |  |  |  | 		Wheel				// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 	}; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | public: | 
					
						
							|  |  |  |  | 	explicit MouseEvent( | 
					
						
							|  |  |  |  | 		HWND hWnd, | 
					
						
							|  |  |  |  | 		UINT message, | 
					
						
							| 
									
										
										
										
											2018-09-04 22:42:34 +08:00
										 |  |  |  | 		WPARAM w_param, | 
					
						
							|  |  |  |  | 		LPARAM l_param, | 
					
						
							| 
									
										
										
										
											2018-08-15 00:06:03 +08:00
										 |  |  |  | 		float dpi | 
					
						
							| 
									
										
										
										
											2018-08-14 00:41:59 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-09-04 22:42:34 +08:00
										 |  |  |  | 	float GetX() const; | 
					
						
							| 
									
										
										
										
											2018-08-14 00:41:59 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-09-04 22:42:34 +08:00
										 |  |  |  | 	float GetY() const; | 
					
						
							| 
									
										
										
										
											2018-08-14 00:41:59 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-09-04 22:42:34 +08:00
										 |  |  |  | 	Point GetPos() const; | 
					
						
							| 
									
										
										
										
											2018-08-14 00:41:59 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><>ȡ<EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-09-04 22:42:34 +08:00
										 |  |  |  | 	MouseEvent::Type GetType() const; | 
					
						
							| 
									
										
										
										
											2018-08-14 00:41:59 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-09-04 22:42:34 +08:00
										 |  |  |  | 	float GetWheelDelta() const; | 
					
						
							| 
									
										
										
										
											2018-08-14 00:41:59 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-09-04 22:42:34 +08:00
										 |  |  |  | 	bool IsLButtonDown() const; | 
					
						
							| 
									
										
										
										
											2018-08-14 00:41:59 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD>Ҽ<EFBFBD><D2BC>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-09-04 22:42:34 +08:00
										 |  |  |  | 	bool IsRButtonDown() const; | 
					
						
							| 
									
										
										
										
											2018-08-14 00:41:59 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD><D0BC>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-09-04 22:42:34 +08:00
										 |  |  |  | 	bool IsMButtonDown() const; | 
					
						
							| 
									
										
										
										
											2018-08-14 00:41:59 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// Shift <20><><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-09-04 22:42:34 +08:00
										 |  |  |  | 	bool IsShiftDown() const; | 
					
						
							| 
									
										
										
										
											2018-08-14 00:41:59 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// Ctrl <20><><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-09-04 22:42:34 +08:00
										 |  |  |  | 	bool IsCtrlDown() const; | 
					
						
							| 
									
										
										
										
											2018-08-14 00:41:59 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | protected: | 
					
						
							| 
									
										
										
										
											2018-09-04 22:42:34 +08:00
										 |  |  |  | 	UINT	message_; | 
					
						
							|  |  |  |  | 	WPARAM	w_param_; | 
					
						
							|  |  |  |  | 	LPARAM	l_param_; | 
					
						
							|  |  |  |  | 	Point	pos_; | 
					
						
							|  |  |  |  | 	MouseEvent::Type type_; | 
					
						
							| 
									
										
										
										
											2018-08-14 00:41:59 +08:00
										 |  |  |  | }; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | // <20><>ײ<EFBFBD>¼<EFBFBD>
 | 
					
						
							|  |  |  |  | class Collision | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | public: | 
					
						
							|  |  |  |  | 	Collision(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	explicit Collision( | 
					
						
							|  |  |  |  | 		Node* node, | 
					
						
							|  |  |  |  | 		Collider::Relation relation | 
					
						
							|  |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	~Collision(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD>ڵ<EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-09-04 22:42:34 +08:00
										 |  |  |  | 	Node* GetNode() const; | 
					
						
							| 
									
										
										
										
											2018-08-14 00:41:59 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ
 | 
					
						
							| 
									
										
										
										
											2018-09-04 22:42:34 +08:00
										 |  |  |  | 	Collider::Relation GetRelation() const; | 
					
						
							| 
									
										
										
										
											2018-08-14 00:41:59 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | protected: | 
					
						
							| 
									
										
										
										
											2018-09-04 22:42:34 +08:00
										 |  |  |  | 	Node * node_; | 
					
						
							|  |  |  |  | 	Collider::Relation relation_; | 
					
						
							| 
									
										
										
										
											2018-08-14 00:41:59 +08:00
										 |  |  |  | }; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | } |