| 
									
										
										
										
											2018-08-14 00:41:59 +08:00
										 |  |  |  | #pragma once
 | 
					
						
							|  |  |  |  | #include "e2dcommon.h"
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 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, | 
					
						
							|  |  |  |  | 		WPARAM wParam, | 
					
						
							|  |  |  |  | 		LPARAM lParam | 
					
						
							|  |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
 | 
					
						
							| 
									
										
										
										
											2018-08-23 16:37:44 +08:00
										 |  |  |  | 	KeyCode code() const; | 
					
						
							| 
									
										
										
										
											2018-08-14 00:41:59 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-08-23 16:37:44 +08:00
										 |  |  |  | 	int count() const; | 
					
						
							| 
									
										
										
										
											2018-08-14 00:41:59 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><>ȡ<EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-08-23 16:37:44 +08:00
										 |  |  |  | 	KeyEvent::Type type() const; | 
					
						
							| 
									
										
										
										
											2018-08-14 00:41:59 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// VK <20><>ֵת<D6B5><D7AA>
 | 
					
						
							|  |  |  |  | 	static KeyCode convertKeyCode( | 
					
						
							|  |  |  |  | 		WPARAM wParam | 
					
						
							|  |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | protected: | 
					
						
							|  |  |  |  | 	int _count; | 
					
						
							|  |  |  |  | 	KeyCode _code; | 
					
						
							|  |  |  |  | 	KeyEvent::Type _type; | 
					
						
							|  |  |  |  | }; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | // <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, | 
					
						
							|  |  |  |  | 		WPARAM wParam, | 
					
						
							| 
									
										
										
										
											2018-08-15 00:06:03 +08:00
										 |  |  |  | 		LPARAM lParam, | 
					
						
							|  |  |  |  | 		float dpi | 
					
						
							| 
									
										
										
										
											2018-08-14 00:41:59 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-08-23 16:37:44 +08:00
										 |  |  |  | 	float positionX() const; | 
					
						
							| 
									
										
										
										
											2018-08-14 00:41:59 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-08-23 16:37:44 +08:00
										 |  |  |  | 	float positionY() const; | 
					
						
							| 
									
										
										
										
											2018-08-14 00:41:59 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-08-23 16:37:44 +08:00
										 |  |  |  | 	Point position() const; | 
					
						
							| 
									
										
										
										
											2018-08-14 00:41:59 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><>ȡ<EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-08-23 16:37:44 +08:00
										 |  |  |  | 	MouseEvent::Type type() const; | 
					
						
							| 
									
										
										
										
											2018-08-14 00:41:59 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-08-23 16:37:44 +08:00
										 |  |  |  | 	float wheelDelta() const; | 
					
						
							| 
									
										
										
										
											2018-08-14 00:41:59 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 	bool isLButtonDown() const; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD>Ҽ<EFBFBD><D2BC>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 	bool isRButtonDown() const; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD><D0BC>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 	bool isMButtonDown() const; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// Shift <20><><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 	bool isShiftDown() const; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// Ctrl <20><><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 	bool isCtrlDown() const; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | protected: | 
					
						
							|  |  |  |  | 	UINT _message; | 
					
						
							|  |  |  |  | 	WPARAM _wParam; | 
					
						
							|  |  |  |  | 	LPARAM _lParam; | 
					
						
							|  |  |  |  | 	Point _pos; | 
					
						
							|  |  |  |  | 	MouseEvent::Type _type; | 
					
						
							|  |  |  |  | }; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | // <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-08-23 16:37:44 +08:00
										 |  |  |  | 	Node* node() const; | 
					
						
							| 
									
										
										
										
											2018-08-14 00:41:59 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ
 | 
					
						
							| 
									
										
										
										
											2018-08-23 16:37:44 +08:00
										 |  |  |  | 	Collider::Relation relation() const; | 
					
						
							| 
									
										
										
										
											2018-08-14 00:41:59 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | protected: | 
					
						
							|  |  |  |  | 	Node * _node; | 
					
						
							|  |  |  |  | 	Collider::Relation _relation; | 
					
						
							|  |  |  |  | }; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | } |