Я работаю над игрой, которая будет использовать SDL 2.0.3 для большей части внутреннего кода (рендеринга, событий, игровых контроллеров и т. Д.). До сих пор я был в состоянии выяснить большинство своих проблем, но эта проблема, кажется, не имеет много информации об этом.
Поэтому моя проблема в том, что я пытаюсь открыть контроллер Xbox 360 для ввода и обратной связи по вибрации. Я получил ввод для правильной работы, но когда я пытаюсь использовать SDL_HapticOpenFromJoystick()
открыть устройство для вибрации, он выходит из строя и SDL_GetError()
говорит "Haptic: There are 0 haptic devices availible".
И то и другое SDL_NumHaptics()
а также SDL_JoystickIsHaptic()
вернуть 0. Я использую SDL_Init(SDL_INIT_EVERYTHING);
инициализировать.
Я знаю, что сам контроллер Xbox 360 может вибрировать, поскольку у меня на ноутбуке с Windows 8 есть игры (не записанные с SDL), которые могут без проблем использовать функцию обратной связи в контроллере.
Если потребуется дополнительная информация, я был бы рад предоставить ее.
Relavant Code:
SDL_GameController *myController = NULL;
SDL_Haptic *myHaptic = NULL;
...
[Begin Basic SDL Event Loop]
...
case SDL_CONTROLLERDEVICEADDED:
if(!myController)
{
myController = SDL_GameControllerOpen(e.cdevice.which);
debugOut("Controller Connected");
myHaptic = SDL_HapticOpenFromJoystick(SDL_GameControllerGetJoystick(myController));
if(myHaptic)
{
debugOut("Haptic Device (i.e. Rumble) Opened");
}
else
{
debugOut("Error in opening Haptic Device (i.e. Rumble)");
debugOut(SDL_GetError());
std::cout << "Number of Haptic Devices: " << SDL_NumHaptics() << std::endl;
std::cout << "Controller is Haptic?: " << SDL_JoystickIsHaptic(SDL_GameControllerGetJoystick(myController)) << std::endl;
}
}
else
{
debugOut("There is already a controller connected, only one allowed right now...");
}
break;
РЕДАКТИРОВАТЬ: я, вероятно, должен добавить, что я использую Visual Studio Express 2012 …
Задача ещё не решена.