OSX上的SDL2将任天堂Joy-Con的模拟操纵杆读作一顶帽子,只给出一个方向,而不是模拟值。如何切换此控制器上的模式以获得模拟输入?
我使用的是SDL版本2.0.9。
发布于 2019-04-06 09:18:29
在SDL2.0.9中,JoyCon似乎没有特殊的支持。开箱即用的JoyCon只被当作一个操纵杆,没有向它发送特殊配置命令的应用编程接口,但是支持JoyCon的基础设施出现在源代码中;SDL确实对Switch Pro控制器提供了特殊支持。
提到JoyCon的文件是Game Controller应用编程接口的一部分。该API旨在支持类似于Xbox360的控制器。单个JoyCon没有足够的输入来适应这一类别,这可能就是为什么它只在操纵杆下默认可用,而不是GameController应用编程接口。
SDL的controllertype.h说:
// We currently don't support using a pair of Switch Joy-Con's as a single
// controller and we don't want to support using them individually for the
// time being, so these should be disabled until one of the above is true
// { MAKE_CONTROLLER_ID( 0x057e, 0x2006 ), k_eControllerType_SwitchJoyConLeft }, // Nintendo Switch Joy-Con (Left)
// { MAKE_CONTROLLER_ID( 0x057e, 0x2007 ), k_eControllerType_SwitchJoyConRight }, // Nintendo Switch Joy-Con (Right)但是,在https://github.com/spurious/SDL-mirror/blob/master/src/joystick/hidapi/SDL_hidapi_switch.c中支持Switch Pro控制器;它似乎能够支持使用HID的所有交换机控制器功能,即使它们并非全部公开给SDL。这可能会通过取消注释几行代码来命令JoyCon。
也可以添加一个控制器映射来使用单个joycon作为SDL游戏控制器,这可以使模拟操纵杆“帽子”看起来像数字操纵杆。
(想必在任天堂交换机上运行的SDL2的保密端口对JoyCons有完美的支持)
https://stackoverflow.com/questions/55539166
复制相似问题