Magic_Game/core/e2devent.h

139 lines
1.9 KiB
C
Raw Normal View History

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>ֵ
KeyCode getCode() const;
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int getCount() const;
// <20><>ȡ<EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>
KeyEvent::Type getType() const;
// 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>
float getX() const;
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
float getY() const;
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Point getPos() const;
// <20><>ȡ<EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>
MouseEvent::Type getType() const;
float getWheelDelta() const;
// <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>
Node* getNode() const;
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ
Collider::Relation getRelation() const;
protected:
Node * _node;
Collider::Relation _relation;
};
}