fix: 修复InputManager中文注释警告和完善Update逻辑

- InputManager.h: 移除中文注释修复C4819警告
- InputManager.h: 添加缺失的vector和unordered_map头文件
- InputManager.cpp: Update()现正确清除m_keyDownThisFrame状态
- InputManager.cpp: ProcessKeyDown/Up添加修饰键参数
- WindowsInputModule: 传递alt/ctrl/shift修饰键状态
This commit is contained in:
2026-03-22 15:25:53 +08:00
parent 36d3decef6
commit a980f2bd66
3 changed files with 34 additions and 22 deletions

View File

@@ -62,8 +62,16 @@ void InputManager::Update(float deltaTime) {
if (!m_initialized) return;
m_keyDownLastFrame = m_keyDownThisFrame;
m_keyDownThisFrame.clear();
m_keyDownThisFrame.resize(256, false);
m_mouseButtonDownLastFrame = m_mouseButtonDownThisFrame;
m_mouseButtonDownThisFrame.clear();
m_mouseButtonDownThisFrame.resize(5, false);
m_buttonDownLastFrame = m_buttonDownThisFrame;
m_buttonDownThisFrame.clear();
m_buttonDownThisFrame.resize(32, false);
m_mouseDelta = Math::Vector2::Zero();
m_mouseScrollDelta = 0.0f;
@@ -203,7 +211,7 @@ void InputManager::ClearAxes() {
m_buttons.clear();
}
void InputManager::ProcessKeyDown(KeyCode key, bool repeat) {
void InputManager::ProcessKeyDown(KeyCode key, bool repeat, bool alt, bool ctrl, bool shift, bool meta) {
if (!m_initialized) return;
size_t index = GetKeyIndex(key);
@@ -215,15 +223,15 @@ void InputManager::ProcessKeyDown(KeyCode key, bool repeat) {
KeyEvent event;
event.keyCode = key;
event.type = repeat ? KeyEvent::Repeat : KeyEvent::Down;
event.alt = false;
event.ctrl = false;
event.shift = false;
event.meta = false;
event.alt = alt;
event.ctrl = ctrl;
event.shift = shift;
event.meta = meta;
m_onKeyEvent.Invoke(event);
}
void InputManager::ProcessKeyUp(KeyCode key) {
void InputManager::ProcessKeyUp(KeyCode key, bool alt, bool ctrl, bool shift, bool meta) {
if (!m_initialized) return;
size_t index = GetKeyIndex(key);
@@ -234,10 +242,10 @@ void InputManager::ProcessKeyUp(KeyCode key) {
KeyEvent event;
event.keyCode = key;
event.type = KeyEvent::Up;
event.alt = false;
event.ctrl = false;
event.shift = false;
event.meta = false;
event.alt = alt;
event.ctrl = ctrl;
event.shift = shift;
event.meta = meta;
m_onKeyEvent.Invoke(event);
}