Files
XCEngine/docs/api/XCEngine/Input/InputManager/IsKeyPressed.md

40 lines
739 B
Markdown
Raw Normal View History

2026-03-26 16:45:24 +08:00
# InputManager::IsKeyPressed
2026-03-26 17:39:53 +08:00
查询一个键是否在本帧刚被按下。
2026-03-26 16:45:24 +08:00
```cpp
bool IsKeyPressed(KeyCode key) const;
```
2026-03-26 17:39:53 +08:00
## 行为说明
2026-03-26 16:45:24 +08:00
2026-03-26 17:39:53 +08:00
当前实现判断条件是:
2026-03-26 16:45:24 +08:00
2026-03-26 17:39:53 +08:00
```cpp
m_keyDownThisFrame[index] && !m_keyDownLastFrame[index]
```
2026-03-26 16:45:24 +08:00
2026-03-26 17:39:53 +08:00
所以它表示的是“从上一帧到当前帧的按下边沿”。要得到正确结果,必须保证 [Update](Update.md) 每帧只在固定边界调用一次。
2026-03-26 16:45:24 +08:00
2026-03-26 17:39:53 +08:00
## 参数
- `key` - 要查询的键。
2026-03-26 16:45:24 +08:00
2026-03-26 17:39:53 +08:00
## 返回值
- `bool` - 当前帧是否刚按下。
## 示例
```cpp
if (XCEngine::Input::InputManager::Get().IsKeyPressed(XCEngine::Input::KeyCode::Space)) {
// ...
2026-03-26 16:45:24 +08:00
}
```
## 相关文档
2026-03-26 17:39:53 +08:00
- [返回类型总览](InputManager.md)
- [Update](Update.md)
- [IsKeyDown](IsKeyDown.md)