8. 手柄
將手機變成虛擬遊戲控制器,用於遊戲、復古模擬與遊戲測試。
佈局
手柄提供完整控制器佈局:方向鍵、動作鍵、肩鍵、模擬搖桿與 Start/Select。
| 控件 | 操作 |
|---|---|
| 方向鍵 | 點擊方向箭頭 |
| 動作鍵 (A, B, X, Y) | 點擊 |
| 肩鍵 | 點擊頂部 L1、L2、R1、R2 |
| 模擬搖桿 | 觸摸並拖動搖桿圓區 |
| Start / Select | 點擊按鈕 |
預設系統 (v7)
KeyMod 0.15 引入 基於預設的手柄系統。不再使用固定內置佈局,手柄配置保存為可循環、導入、導出的 預設。
管理預設
- 點擊工具欄 Preset 芯片 在可用佈局間循環
- 長按 Preset 芯片 打開完整預設列表,含導入、添加模塊、導出
- 捆綁的 emu-6 佈局作為起始預設 (
preset_default) - 預設為可共享 JSON,佈局 schema v7
添加模塊
從預設菜單可向任意佈局添加新模塊:
- D-Pad / Stick — 添加左拇指模塊 (
stick_left,stick_left_2等) - Touchpad — 添加觸控板 (
touchpad_1,touchpad_2等),捆綁 L/M/R 鼠標鍵 - Buttons — 添加面鍵、肩鍵或扳機
自定義
- 配置任意模塊 — 點擊模塊打開配置對話框調整行為
- 模擬 vs 按鍵模式 — 搖桿可設為
STICK_KEY(數字方向鍵)或STICK_MOUSE(相對指針/鼠標移動) - WASD 映射 — 為左搖桿分配 WASD,用於 PC 遊戲
- 按鈕/搖桿尺寸縮放 — 按觸摸區域調整大小
- 背景圖 — 自定義手柄背景(共享預設中以 base64 嵌入,最大 6 MiB)
- 觸覺反饋 — 按鍵振動(僅面鍵,非鼠標點擊)
- 陀螺儀 — 在手柄界面激活時,用設備陀螺儀移動主機指針
模塊模型
每個屏幕控件為三層 模塊:
| 層 | 定義內容 |
|---|---|
| Slot / identity | 畫布上的控件(如 stick_left, stick_right, touchpad_1) |
| Behavior (type) | 主機接收內容:STICK_KEY, STICK_MOUSE, DPAD, BUTTON, TOUCHPAD |
| Parameters | 同模塊調參:dpadVariant, stickMouseSensitivity, stickVisualVariant, 大小、顏色 |
模擬搖桿
- 左搖桿 → 鍵盤鍵: 映射方向鍵,支持對角。可在模塊配置中設為 WASD。
- 右搖桿 → 鼠標移動:
STICK_MOUSE模式,可配置靈敏度 (stickMouseSensitivity),死區防止漂移。 - 遲滯: 激活 (0.6) 與釋放 (0.4) 閾值減少邊界按鍵抖動。
觸控板
- 多觸控板支持:單佈局可添加多個觸控板 (
touchpad_1,touchpad_2等) - 默認 方形區域,長按可調整大小
- 捆綁鼠標鍵 (L/M/R) 在所有觸控板間共享
- 鼠標鍵尺寸:長按觸控板調整 Mouse button size,或長按單個鼠標鍵調整 This button size
説明: 手柄 HID 協議仍在積極開發。基本按鍵可用;模擬搖桿精度可能因設備而異。
故障排除
模擬搖桿無響應
| 現象 | 解決方案 |
|---|---|
| 搖桿無動作 | 檢查模塊配置。確認搖桿未卡在死區(中心區域)。檢查遲滯閾值 — 需移過 0.6 激活才觸發。 |
| 按鍵發送錯誤鍵 | 打開模塊配置檢查按鍵分配。點擊按鍵打開配置彈窗修正映射。 |
| 觸控板鼠標鍵不點擊 | 確認預設有捆綁 L/M/R 鍵。添加觸控板會自動添加共享鼠標鍵。檢查模塊配置中的 HID 鍵分配。 |