40 lines
987 B
C++
40 lines
987 B
C++
#pragma once
|
||
#include<Windows.h>
|
||
#include"../event/Event.h"
|
||
#include"DKey.h"
|
||
#include<iostream>
|
||
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::pair<int, int>GetMousePosition() { 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<int> KeyDown;
|
||
Event<int> KeyUp;
|
||
Event<int> MouseButtonDown;
|
||
Event<int> MouseButtonUp;
|
||
Event<int, int> MouseMoving;//传position
|
||
Event<int, int> MouseMove;//传delta position
|
||
|
||
private:
|
||
std::vector<dKey> downKeys;
|
||
std::pair<int, int> m_mousePosition;
|
||
ListenerID keyDownID;
|
||
ListenerID keyUpID;
|
||
ListenerID mouseButtonDownID;
|
||
ListenerID mouseButtonUpID;
|
||
ListenerID mouseMovingID;
|
||
}; |