CMCore/inc/hgl/io/event/InputMapping.h

71 lines
2.1 KiB
C
Raw Normal View History

2025-06-08 22:09:22 +08:00
#pragma once
#include<hgl/type/IDName.h>
#include<hgl/io/event/KeyboardEvent.h>
#include<hgl/io/event/MouseEvent.h>
#include<hgl/io/event/JoystickEvent.h>
namespace hgl::io
{
/**
* @brief
*
*
*
*
* 使
* 使
*
* 1.
*
* 2.
*
* 3.FPS游戏的主角移动WASD
*
* 4.
*/
HGL_DEFINE_ANSI_IDNAME(InputEventName)
enum class InputSourceType
{
None, //无效输入
Button, //按键输入
Axis, //轴输入
Touch, //触控输入
Trigger, //触发器输入
Hat, //方向盘输入
ENUM_CLASS_RANGE(Button,Hat)
};
struct InputSource
{
InputSourceType type; //输入类型
};
struct KeyboardInputSource:public InputSource
{
KeyboardButton key; //键盘按键
};
struct MouseInputSource:public InputSource
{
MouseButton button; //鼠标按键
};
struct JoystickButtonInputSource:public InputSource
{
JoystickButton button; //手柄按键
};
class InputMapping
{
InputEventName name; //输入事件名称
ObjectList<InputSource> sources; //输入源列表
public:
};
}//namespace hgl::io