Почему сбой SDL_HapticRumbleInit - PullRequest
0 голосов
/ 03 марта 2020

Я пытаюсь использовать sdl, чтобы заставить мой руль греметь. Вот основные шаги, которые я предпринимаю:

  1. Инициализация подсистемы (SDL_INIT_HAPTI C)
  2. Получение устройства джойстика
  3. Получение устройства c от джойстика ( SDL_HapticOpenFromJoystick)
  4. Проверить, поддерживает ли устройство гул (SDL_HapticRumbleSupported)
  5. Инициализировать гул (SDL_HapticRumbleInit)
  6. Воспроизвести гул (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());
        }
    }
    
...