43 lines
1.1 KiB
Markdown
43 lines
1.1 KiB
Markdown
# InputManager::ProcessMouseButton
|
|
|
|
向输入系统注入一个鼠标按键事件。
|
|
|
|
```cpp
|
|
void ProcessMouseButton(MouseButton button, bool pressed, int x, int y);
|
|
```
|
|
|
|
## 行为说明
|
|
|
|
当前实现会:
|
|
|
|
- 如果未初始化或按钮索引越界,直接返回
|
|
- 把 `m_mouseButtonDown[index]` 更新为 `pressed`
|
|
- 如果 `pressed == true`,把 `m_mouseButtonDownThisFrame[index]` 设为 `true`
|
|
- 如果 `pressed == false`,把 `m_mouseButtonUpThisFrame[index]` 设为 `true`
|
|
- 构造 `MouseButtonEvent`
|
|
- 同步触发 `m_onMouseButton`
|
|
|
|
因此这条注入路径会同时驱动三类查询:
|
|
|
|
- 按住态: [IsMouseButtonDown](IsMouseButtonDown.md)
|
|
- 按下边沿: [IsMouseButtonClicked](IsMouseButtonClicked.md)
|
|
- 释放边沿: [IsMouseButtonReleased](IsMouseButtonReleased.md)
|
|
|
|
## 参数
|
|
|
|
- `button` - 鼠标按键。
|
|
- `pressed` - `true` 表示按下,`false` 表示释放。
|
|
- `x` - 事件位置 X。
|
|
- `y` - 事件位置 Y。
|
|
|
|
## 返回值
|
|
|
|
- 无。
|
|
|
|
## 相关文档
|
|
|
|
- [返回类型总览](InputManager.md)
|
|
- [OnMouseButton](OnMouseButton.md)
|
|
- [IsMouseButtonClicked](IsMouseButtonClicked.md)
|
|
- [IsMouseButtonReleased](IsMouseButtonReleased.md)
|