From bad78945ceba425f6a80e3b8dca2414d592970eb Mon Sep 17 00:00:00 2001 From: chai Date: Fri, 2 Aug 2019 20:51:00 +0800 Subject: =?UTF-8?q?*=E4=BF=AE=E6=94=B9=E6=96=87=E4=BB=B6=E5=90=8D=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/modules/asura-core/Input/Button.h | 31 ++ source/modules/asura-core/Input/ClipBoard.cpp | 0 source/modules/asura-core/Input/ClipBoard.h | 0 source/modules/asura-core/Input/InputDevice.cpp | 0 source/modules/asura-core/Input/InputDevice.h | 39 ++ source/modules/asura-core/Input/InputManager.cpp | 0 source/modules/asura-core/Input/InputManager.h | 24 ++ source/modules/asura-core/Input/JoystickState.h | 0 source/modules/asura-core/Input/KeyboardState.h | 37 ++ source/modules/asura-core/Input/Keys.h | 482 +++++++++++++++++++++++ source/modules/asura-core/Input/MouseState.h | 0 11 files changed, 613 insertions(+) create mode 100644 source/modules/asura-core/Input/Button.h create mode 100644 source/modules/asura-core/Input/ClipBoard.cpp create mode 100644 source/modules/asura-core/Input/ClipBoard.h create mode 100644 source/modules/asura-core/Input/InputDevice.cpp create mode 100644 source/modules/asura-core/Input/InputDevice.h create mode 100644 source/modules/asura-core/Input/InputManager.cpp create mode 100644 source/modules/asura-core/Input/InputManager.h create mode 100644 source/modules/asura-core/Input/JoystickState.h create mode 100644 source/modules/asura-core/Input/KeyboardState.h create mode 100644 source/modules/asura-core/Input/Keys.h create mode 100644 source/modules/asura-core/Input/MouseState.h (limited to 'source/modules/asura-core/Input') diff --git a/source/modules/asura-core/Input/Button.h b/source/modules/asura-core/Input/Button.h new file mode 100644 index 0000000..5c3c0de --- /dev/null +++ b/source/modules/asura-core/Input/Button.h @@ -0,0 +1,31 @@ +#ifndef __BUTTON_H__ +#define __BUTTON_H__ + +#include + +namespace_begin(AsuraEngine) +namespace_begin(Input) + +/// keyboard button \ mouse button \ joystick button +class Button +{ +public: + inline Button(int key, bool state) : + key(key), + state(state) + { + } + + inline int GetKey(void) const { return this->key; } + inline bool GetState(void) const { return this->state; } + +private: + int key; + bool state; + +}; + +namespace_end +namespace_end + +#endif \ No newline at end of file diff --git a/source/modules/asura-core/Input/ClipBoard.cpp b/source/modules/asura-core/Input/ClipBoard.cpp new file mode 100644 index 0000000..e69de29 diff --git a/source/modules/asura-core/Input/ClipBoard.h b/source/modules/asura-core/Input/ClipBoard.h new file mode 100644 index 0000000..e69de29 diff --git a/source/modules/asura-core/Input/InputDevice.cpp b/source/modules/asura-core/Input/InputDevice.cpp new file mode 100644 index 0000000..e69de29 diff --git a/source/modules/asura-core/Input/InputDevice.h b/source/modules/asura-core/Input/InputDevice.h new file mode 100644 index 0000000..39f3d37 --- /dev/null +++ b/source/modules/asura-core/Input/InputDevice.h @@ -0,0 +1,39 @@ +#ifndef _ASURA_ENGINE_INPUT_BASE_H_ +#define _ASURA_ENGINE_INPUT_BASE_H_ + +#include +#include +#include + +#include "../CoreConfig.h" + +#include "KeyboardState.h" + +namespace_begin(AsuraEngine) +namespace_begin(Input) + +/// 不同平台继承这个基类并实现handle接口 +ASURA_ABSTRACT class InputDevice : public Singleton +{ +protected: + + void OnKeyDown(int key); + void OnKeyUp(int key); + + void OnMouseMove(const AEMath::Vector2f& position); + + void OnMouseButtonDown(int key); + void OnMouseButtonUp(int key); + + void OnMouseWheel(); + + void OnInputChar(); + +}; + +namespace_end +namespace_end + +namespace AEInput = AsuraEngine::Input; + +#endif \ No newline at end of file diff --git a/source/modules/asura-core/Input/InputManager.cpp b/source/modules/asura-core/Input/InputManager.cpp new file mode 100644 index 0000000..e69de29 diff --git a/source/modules/asura-core/Input/InputManager.h b/source/modules/asura-core/Input/InputManager.h new file mode 100644 index 0000000..dd11b2f --- /dev/null +++ b/source/modules/asura-core/Input/InputManager.h @@ -0,0 +1,24 @@ +#ifndef __INPUT_MAMANGER_H__ +#define __INPUT_MAMANGER_H__ + +#include +#include +#include + +namespace_begin(AsuraEngine) +namespace_begin(Input) + +/// 逻辑管理 +class InputManager : public Singleton +{ +public : + + +private : + +}; + +namespace_end +namespace_end + +#endif \ No newline at end of file diff --git a/source/modules/asura-core/Input/JoystickState.h b/source/modules/asura-core/Input/JoystickState.h new file mode 100644 index 0000000..e69de29 diff --git a/source/modules/asura-core/Input/KeyboardState.h b/source/modules/asura-core/Input/KeyboardState.h new file mode 100644 index 0000000..96d22e7 --- /dev/null +++ b/source/modules/asura-core/Input/KeyboardState.h @@ -0,0 +1,37 @@ +#ifndef __KEYBOARD_STATE_H__ +#define __KEYBOARD_STATE_H__ + +#include + +#include "Button.h" + +namespace_begin(AsuraEngine) +namespace_begin(Input) + +typedef std::vector