framework / 安卓 · 2022年2月16日 0

Android Input (Game)

支持游戏控制器

通过让玩家使用他们喜爱的游戏控制器,您可以极大地提升游戏的用户体验。Android 框架提供了用于检测和处理来自游戏控制器的用户输入的 API。

这节课介绍了如何使游戏在与不同 Android API 级别(API 级别 9 及更高级别)的游戏控制器配合使用时以一致的方式运行,以及如何通过在应用中同时支持多个控制器来提升玩家的游戏体验。

课程

处理控制器操作了解如何处理来自游戏控制器上常见输入元素(包括方向键按钮、游戏手柄按钮和操纵杆)的用户输入。

跨 Android 版本支持控制器了解如何使游戏控制器在搭载不同 Android 版本的各种设备上以相同的方式运行。

支持多个游戏控制器了解如何检测和使用同时连接到的多个游戏控制器。

图 1. 常规游戏控制器的剖面图。

图中的标注是指以下内容:

  1. AXIS_HAT_XAXIS_HAT_YDPAD_UPDPAD_DOWNDPAD_LEFTDPAD_RIGHT
  2. AXIS_XAXIS_YBUTTON_THUMBL
  3. AXIS_ZAXIS_RZBUTTON_THUMBR
  4. BUTTON_X
  5. BUTTON_A
  6. BUTTON_Y
  7. BUTTON_B
  8. BUTTON_R1
  9. AXIS_RTRIGGERAXIS_THROTTLE
  10. AXIS_LTRIGGERAXIS_BRAKE
  11. BUTTON_L1

游戏手柄按钮按下操作生成的常见键码包括 BUTTON_ABUTTON_BBUTTON_SELECT 和 BUTTON_START。当按下方向键交叉按钮的中心部位时,一些游戏控制器还会触发 DPAD_CENTER 键码。您的游戏可以通过调用 getKeyCode() 检查该键码,也可以通过按键事件回调(例如 onKeyDown())检查该键码,如果该键码表示与您的游戏相关的事件,请将其作为游戏操作进行处理。