SuperAPI AI 工具集

steamdeck-controls

编程与开发

查看项目

更新于 10-16 06:21

技能介绍

用途:让 Phaser 3 HTML5 游戏在 Steam Deck 上开箱即用手柄操作。Steam Deck 在浏览器中通过 W3C Gamepad API 以标准 XInput(Xbox 布局)手柄形式暴露。

主要能力:给出标准按键索引映射(0=A、1=B、2=X、3=Y、4=LB、5=RB、6=LT、7=RT、8=View、9=Menu、10/11=摇杆按下、12-15=方向键、16=Steam 键),以及 4 个轴(左右摇杆 X/Y,Y 轴与屏幕坐标相反)。说明 LT/RT 为 0.0-1.0 模拟量,方向键以按键而非轴形式提供。

使用方式:在 Phaser 配置中设置 input.gamepad: true;通过 this.input.gamepad.getPad(0) 获取手柄并监听 connected 事件;在 update 中读取 pad.A、pad.L1、pad.L2、pad.up 等命名属性,或用 isButtonDown(8/9/10/11) 读取 View、Menu 与摇杆按下。推荐使用 @sdr/engine 的 InputManager:create 中 new InputManager(this) 并 setup(),onUpdate 中 getState() 得到统一 InputState(moveX/moveY、aimX/aimY、action1-4、bumperLeft/Right、triggerLeft/Right、pause、lastDevice),自动处理手柄、键盘与触屏虚拟摇杆。

适用场景:Steam Deck 上运行的 Phaser 3 游戏,需同时支持键盘与手柄,目标分辨率 1280x800。

限制:背键 L4/L5/R4/R5、触控板、陀螺仪/加速度计不通过标准 Gamepad API 暴露,仅能经 Steam Input 重映射,不应作为核心玩法依赖;Steam/Home 键(索引 16)会打开 Steam 覆盖层,不应使用;浏览器手柄震动支持在 Linux 上不一致。需对摇杆应用至少 0.15 死区、做空值安全处理、用 delta time 计算移动、归一化斜向移动,并注意手柄可能需用户按键后才被浏览器上报。