From 3cec8ff7ef5cd900194d1fc2bb79e68d59ed8f44 Mon Sep 17 00:00:00 2001 From: ChestnutYueyue <952134128@qq.com> Date: Mon, 23 Feb 2026 02:58:42 +0800 Subject: [PATCH] =?UTF-8?q?refactor(input):=20=E9=87=8D=E6=9E=84=E8=BE=93?= =?UTF-8?q?=E5=85=A5=E4=BB=A3=E7=A0=81=E4=B8=BA=E7=8B=AC=E7=AB=8B=E6=9E=9A?= =?UTF-8?q?=E4=B8=BE=E7=B1=BB=E5=B9=B6=E7=A7=BB=E9=99=A4SDL=E4=BE=9D?= =?UTF-8?q?=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将原本基于SDL的输入代码重构为独立的枚举类,移除对SDL的依赖 删除旧的input_codes.h文件,将键盘、鼠标和手柄的输入代码统一到新的keys.h中 --- Extra2D/include/extra2d/event/input_codes.h | 212 -------------------- Extra2D/src/window/keys.h | 72 +++++++ 2 files changed, 72 insertions(+), 212 deletions(-) delete mode 100644 Extra2D/include/extra2d/event/input_codes.h create mode 100644 Extra2D/src/window/keys.h diff --git a/Extra2D/include/extra2d/event/input_codes.h b/Extra2D/include/extra2d/event/input_codes.h deleted file mode 100644 index eeb4f43..0000000 --- a/Extra2D/include/extra2d/event/input_codes.h +++ /dev/null @@ -1,212 +0,0 @@ -#pragma once - -// SDL2 键码定义 -#include - -namespace extra2d { - -// ============================================================================ -// 键盘按键码 (基于 SDL2) -// ============================================================================ -namespace Key { -enum : int { - Unknown = SDLK_UNKNOWN, - Space = SDLK_SPACE, - Apostrophe = SDLK_QUOTE, - Comma = SDLK_COMMA, - Minus = SDLK_MINUS, - Period = SDLK_PERIOD, - Slash = SDLK_SLASH, - Num0 = SDLK_0, - Num1 = SDLK_1, - Num2 = SDLK_2, - Num3 = SDLK_3, - Num4 = SDLK_4, - Num5 = SDLK_5, - Num6 = SDLK_6, - Num7 = SDLK_7, - Num8 = SDLK_8, - Num9 = SDLK_9, - Semicolon = SDLK_SEMICOLON, - Equal = SDLK_EQUALS, - A = SDLK_a, - B = SDLK_b, - C = SDLK_c, - D = SDLK_d, - E = SDLK_e, - F = SDLK_f, - G = SDLK_g, - H = SDLK_h, - I = SDLK_i, - J = SDLK_j, - K = SDLK_k, - L = SDLK_l, - M = SDLK_m, - N = SDLK_n, - O = SDLK_o, - P = SDLK_p, - Q = SDLK_q, - R = SDLK_r, - S = SDLK_s, - T = SDLK_t, - U = SDLK_u, - V = SDLK_v, - W = SDLK_w, - X = SDLK_x, - Y = SDLK_y, - Z = SDLK_z, - LeftBracket = SDLK_LEFTBRACKET, - Backslash = SDLK_BACKSLASH, - RightBracket = SDLK_RIGHTBRACKET, - GraveAccent = SDLK_BACKQUOTE, - Escape = SDLK_ESCAPE, - Enter = SDLK_RETURN, - Tab = SDLK_TAB, - Backspace = SDLK_BACKSPACE, - Insert = SDLK_INSERT, - Delete = SDLK_DELETE, - Right = SDLK_RIGHT, - Left = SDLK_LEFT, - Down = SDLK_DOWN, - Up = SDLK_UP, - PageUp = SDLK_PAGEUP, - PageDown = SDLK_PAGEDOWN, - Home = SDLK_HOME, - End = SDLK_END, - CapsLock = SDLK_CAPSLOCK, - ScrollLock = SDLK_SCROLLLOCK, - NumLock = SDLK_NUMLOCKCLEAR, - PrintScreen = SDLK_PRINTSCREEN, - Pause = SDLK_PAUSE, - F1 = SDLK_F1, - F2 = SDLK_F2, - F3 = SDLK_F3, - F4 = SDLK_F4, - F5 = SDLK_F5, - F6 = SDLK_F6, - F7 = SDLK_F7, - F8 = SDLK_F8, - F9 = SDLK_F9, - F10 = SDLK_F10, - F11 = SDLK_F11, - F12 = SDLK_F12, - F13 = SDLK_F13, - F14 = SDLK_F14, - F15 = SDLK_F15, - F16 = SDLK_F16, - F17 = SDLK_F17, - F18 = SDLK_F18, - F19 = SDLK_F19, - F20 = SDLK_F20, - F21 = SDLK_F21, - F22 = SDLK_F22, - F23 = SDLK_F23, - F24 = SDLK_F24, - KP0 = SDLK_KP_0, - KP1 = SDLK_KP_1, - KP2 = SDLK_KP_2, - KP3 = SDLK_KP_3, - KP4 = SDLK_KP_4, - KP5 = SDLK_KP_5, - KP6 = SDLK_KP_6, - KP7 = SDLK_KP_7, - KP8 = SDLK_KP_8, - KP9 = SDLK_KP_9, - KPDecimal = SDLK_KP_PERIOD, - KPDivide = SDLK_KP_DIVIDE, - KPMultiply = SDLK_KP_MULTIPLY, - KPSubtract = SDLK_KP_MINUS, - KPAdd = SDLK_KP_PLUS, - KPEnter = SDLK_KP_ENTER, - KPEqual = SDLK_KP_EQUALS, - LeftShift = SDLK_LSHIFT, - LeftControl = SDLK_LCTRL, - LeftAlt = SDLK_LALT, - LeftSuper = SDLK_LGUI, - RightShift = SDLK_RSHIFT, - RightControl = SDLK_RCTRL, - RightAlt = SDLK_RALT, - RightSuper = SDLK_RGUI, - Menu = SDLK_MENU, - Last = SDLK_MENU -}; -} - -// ============================================================================ -// 修饰键 -// ============================================================================ -namespace Mod { -enum : int { - Shift = KMOD_SHIFT, - Control = KMOD_CTRL, - Alt = KMOD_ALT, - Super = KMOD_GUI, - CapsLock = KMOD_CAPS, - NumLock = KMOD_NUM -}; -} - -// ============================================================================ -// 鼠标按键码 -// ============================================================================ -namespace Mouse { -enum : int { - Button1 = 0, - Button2 = 1, - Button3 = 2, - Button4 = 3, - Button5 = 4, - Button6 = 5, - Button7 = 6, - Button8 = 7, - ButtonLast = Button8, - ButtonLeft = Button1, - ButtonRight = Button2, - ButtonMiddle = Button3 -}; -} - -// ============================================================================ -// 游戏手柄按键 -// ============================================================================ -namespace GamepadButton { -enum : int { - A = SDL_CONTROLLER_BUTTON_A, - B = SDL_CONTROLLER_BUTTON_B, - X = SDL_CONTROLLER_BUTTON_X, - Y = SDL_CONTROLLER_BUTTON_Y, - LeftBumper = SDL_CONTROLLER_BUTTON_LEFTSHOULDER, - RightBumper = SDL_CONTROLLER_BUTTON_RIGHTSHOULDER, - Back = SDL_CONTROLLER_BUTTON_BACK, - Start = SDL_CONTROLLER_BUTTON_START, - Guide = SDL_CONTROLLER_BUTTON_GUIDE, - LeftThumb = SDL_CONTROLLER_BUTTON_LEFTSTICK, - RightThumb = SDL_CONTROLLER_BUTTON_RIGHTSTICK, - DPadUp = SDL_CONTROLLER_BUTTON_DPAD_UP, - DPadRight = SDL_CONTROLLER_BUTTON_DPAD_RIGHT, - DPadDown = SDL_CONTROLLER_BUTTON_DPAD_DOWN, - DPadLeft = SDL_CONTROLLER_BUTTON_DPAD_LEFT, - Last = SDL_CONTROLLER_BUTTON_DPAD_LEFT, - Cross = A, - Circle = B, - Square = X, - Triangle = Y -}; -} - -// ============================================================================ -// 游戏手柄轴 -// ============================================================================ -namespace GamepadAxis { -enum : int { - LeftX = SDL_CONTROLLER_AXIS_LEFTX, - LeftY = SDL_CONTROLLER_AXIS_LEFTY, - RightX = SDL_CONTROLLER_AXIS_RIGHTX, - RightY = SDL_CONTROLLER_AXIS_RIGHTY, - LeftTrigger = SDL_CONTROLLER_AXIS_TRIGGERLEFT, - RightTrigger = SDL_CONTROLLER_AXIS_TRIGGERRIGHT, - Last = SDL_CONTROLLER_AXIS_TRIGGERRIGHT -}; -} - -} // namespace extra2d diff --git a/Extra2D/src/window/keys.h b/Extra2D/src/window/keys.h new file mode 100644 index 0000000..7fafae1 --- /dev/null +++ b/Extra2D/src/window/keys.h @@ -0,0 +1,72 @@ +#pragma once + +namespace extra2d { + +/** + * @brief 键盘按键码 + */ +enum class Key : int { + None = 0, + A, B, C, D, E, F, G, H, I, J, K, L, M, + N, O, P, Q, R, S, T, U, V, W, X, Y, Z, + Num0, Num1, Num2, Num3, Num4, + Num5, Num6, Num7, Num8, Num9, + F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, + Space, Enter, Escape, Tab, Backspace, + Insert, Delete, Home, End, PageUp, PageDown, + Up, Down, Left, Right, + LShift, RShift, LCtrl, RCtrl, LAlt, RAlt, + CapsLock, NumLock, ScrollLock, + Count +}; + +/** + * @brief 鼠标按钮 + */ +enum class Mouse : int { + Left = 0, + Right, + Middle, + X1, + X2, + Count +}; + +/** + * @brief 游戏手柄按钮 + */ +enum class Gamepad : int { + A = 0, + B, + X, + Y, + LB, + RB, + LT, + RT, + Back, + Start, + Guide, + LStick, + RStick, + DUp, + DDown, + DLeft, + DRight, + Count +}; + +/** + * @brief 手柄轴 + */ +enum class GamepadAxis : int { + LeftX = 0, + LeftY, + RightX, + RightY, + LeftTrigger, + RightTrigger, + Count +}; + +} // namespace extra2d