#pragma once #include #include"../event/Event.h" #include"DKey.h" #include class Input { public: Input(); ~Input(); void HandelInput(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); void HandelMouseInput(int p_x, int p_y); bool IsKeyDown(dKey p_key); void ClearEvents(); //这个方法有BUG,用不了 std::pairGetMousePosition() { return m_mousePosition; }; private: void OnKeyDown(int p_key); void OnKeyUp(int p_key); void OnMouseButtonDown(int p_mouseButton); void OnMouseButtonUp(int p_mouseButton); void OnMouseMove(int p_x, int p_y); public: Event KeyDown; Event KeyUp; Event MouseButtonDown; Event MouseButtonUp; Event MouseMoving;//传position Event MouseMove;//传delta position private: std::vector downKeys; std::pair m_mousePosition; ListenerID keyDownID; ListenerID keyUpID; ListenerID mouseButtonDownID; ListenerID mouseButtonUpID; ListenerID mouseMovingID; };