获取遥控器状态示例
本示例演示如何读取遥控器按键与摇杆输入状态。
Gamepad SDK 示例
Section titled “Gamepad SDK 示例”example/example_retroid.cpp 展示了如何接收并实时显示 Retroid 手柄的所有按键和摇杆状态。
RetroidGamepad rc(12121); ///< 创建手柄实例,监听 12121 端口InitialRetroidKeys(rc); ///< 初始化按键状态显示字符串rc.StartDataThread(); ///< 启动 UDP 数据接收线程rc.updateCallback_ = [&](int32_t count) { std::cout << rc << std::endl; ///< 每次数据更新时清屏并打印手柄状态};终端输出效果
Section titled “终端输出效果”程序运行后,终端会以表格形式实时显示手柄状态:

按下按键时,对应项会变为绿色的 pressed。
Skydroid 手柄示例
Section titled “Skydroid 手柄示例”example/example_skydroid.cpp 的使用方式与 Retroid 类似:
SkydroidGamepad rc(12121);InitialSkydroidKeys(rc);rc.StartDataThread();
rc.updateCallback_ = [&](int32_t count) { std::cout << rc << std::endl;};终端输出会显示 Skydroid 的按键、拨动开关和摇杆数据:

Android 方式
Section titled “Android 方式”通过 ControllerSDK 获取手柄数据:
controller.addJoystickListener { data -> val leftX = data.leftX val leftY = data.leftY val rightX = data.rightX val rightY = data.rightY
Log.d("Controller", "左摇杆: ($leftX, $leftY)") Log.d("Controller", "右摇杆: ($rightX, $rightY)")}通过 SDK 获取键盘/手柄输入:
UserCommand cmd;if (getUserInput(&cmd)) { printf("vx: %.2f, vy: %.2f, vyaw: %.2f\n", cmd.vx, cmd.vy, cmd.vyaw);}