2.5 KiB
2.5 KiB
InputEvent
命名空间: XCEngine::Input
类型: struct
头文件: XCEngine/Input/InputEvent.h
描述: 定义 InputManager 向外分发的键盘、鼠标、文本和触摸事件数据结构。
概述
InputEvent.h 不是单一事件类,而是一组轻量结构体。它们由 InputManager::Process* 方法构造,并通过 Core::Event 同步广播给订阅者。
当前行为特点:
- 事件回调是同步触发的,发生在
Process*调用线程中。 - 键盘和鼠标事件已有具体生成路径。
TouchState结构已存在,但当前实现中没有对应的平台填充逻辑。
结构体
KeyEvent
| 字段 | 类型 | 说明 |
|---|---|---|
keyCode |
KeyCode |
键值。 |
alt |
bool |
事件发生时是否按下 Alt。 |
ctrl |
bool |
事件发生时是否按下 Ctrl。 |
shift |
bool |
事件发生时是否按下 Shift。 |
meta |
bool |
事件发生时是否按下 Meta。当前 Windows 路径始终为 false。 |
type |
KeyEvent::Type |
Down、Up 或 Repeat。 |
MouseButtonEvent
| 字段 | 类型 | 说明 |
|---|---|---|
button |
MouseButton |
鼠标按键。 |
position |
Math::Vector2 |
事件位置。 |
type |
MouseButtonEvent::Type |
Pressed 或 Released。 |
MouseMoveEvent
| 字段 | 类型 | 说明 |
|---|---|---|
position |
Math::Vector2 |
当前鼠标位置。 |
delta |
Math::Vector2 |
相对上一次输入事件的位移。 |
MouseWheelEvent
| 字段 | 类型 | 说明 |
|---|---|---|
position |
Math::Vector2 |
鼠标位置。 |
delta |
float |
滚轮增量。 |
TextInputEvent
| 字段 | 类型 | 说明 |
|---|---|---|
character |
char |
输入的单字符。 |
text |
Containers::String |
当前实现中为长度 1 的字符串。 |
TouchState
| 字段 | 类型 | 说明 |
|---|---|---|
touchId |
int |
触点 ID。 |
position |
Math::Vector2 |
触点位置。 |
deltaPosition |
Math::Vector2 |
位置变化量。 |
deltaTime |
float |
与前一状态的时间差。 |
tapCount |
int |
点击次数。 |
phase |
TouchState::Phase |
Began、Moved、Stationary、Ended 或 Canceled。 |