Я пытаюсь использовать sdl, чтобы заставить мой руль греметь. Вот основные шаги, которые я предпринимаю:
- Инициализация подсистемы (SDL_INIT_HAPTI C)
- Получение устройства джойстика
- Получение устройства c от джойстика ( SDL_HapticOpenFromJoystick)
- Проверить, поддерживает ли устройство гул (SDL_HapticRumbleSupported)
- Инициализировать гул (SDL_HapticRumbleInit)
- Воспроизвести гул (SDL_HapticRumblePlay * 101 * * * * * * * * * 5 1017 *
Мой код не работает на шаге 5. Когда я вызываю SDL_HapticRumbleInit, я получаю следующую ошибку sdl: Hapti c error Невозможно создать эффект
Что я делаю неправильно? Я что-то пропустил? Любая помощь приветствуется.
Мой код:
SDL_Haptic* m_haptic;
// Open the device
if (!m_haptic) {
m_haptic = SDL_HapticOpenFromJoystick(m_dev);
}
if (m_haptic == NULL) {
return; // Most likely joystick isn't haptic
}
if (SDL_HapticRumbleSupported(m_haptic)) {
//Get initialize rumble
if (SDL_HapticRumbleInit(m_haptic) < 0)
{
// This is where my code is failing.
printf("Warning: Unable to initialize rumble! SDL Error: %s\n", SDL_GetError());
}
if (SDL_HapticRumblePlay(m_haptic, 0.75, 5000) != 0)
{
printf("Warning: Unable to play rumble! %s\n", SDL_GetError());
}
}