我使用SDL2并尝试让我的控制器在iOS 13和Android10上都能发出隆隆声,你可以在下面看到我的代码摘录:
joystick = SDL_JoystickOpen(device);
SDL_Haptic * haptic = SDL_HapticOpenFromJoystick(joystick);
SDL_HapticRumbleInit(haptic);
SDL_HapticRumblePlay(haptic, (float)0.5, 2000);
SDL_HapticClose(haptic);但目前它只能在带有PS4控制器的安卓10上工作,使用Xbox One控制器,在iOS 13和安卓10上,SDL调用SDL_NumHaptics()总是返回0,这与iOS 13上的PS4控制器是一样的。
是否有人遇到过同样的问题?如果是,有没有办法解决或解决这个问题?
提前谢谢你。
发布于 2020-05-25 19:41:11
你必须在关闭触觉之前添加SDL_Delay(2000)。如果你不这样做,那么在它真正发出隆隆声之前,你就关闭了它
joystick = SDL_JoystickOpen(device);
SDL_Haptic * haptic = SDL_HapticOpenFromJoystick(joystick);
SDL_HapticRumbleInit(haptic);
SDL_HapticRumblePlay(haptic, (float)0.5, 2000);
SDL_Delay(2000);
SDL_HapticClose(haptic);我还会添加相应的检查,如sdl2的维基中所示:
SDL_Haptic *haptic;
// Open the device
haptic = SDL_HapticOpen( 0 );
if (haptic == NULL)
return -1;
// Initialize simple rumble
if (SDL_HapticRumbleInit( haptic ) != 0)
return -1;
// Play effect at 50% strength for 2 seconds
if (SDL_HapticRumblePlay( haptic, 0.5, 2000 ) != 0)
return -1;
SDL_Delay( 2000 );
// Clean up
SDL_HapticClose( haptic );https://stackoverflow.com/questions/59615667
复制相似问题