私は、ほとんどのバックエンド コード (レンダリング、イベント、ゲーム コントローラなど) に SDL 2.0.3 を使用するゲームに取り組んでいます。これまでのところ、ほとんどの問題を解決できましたが、この問題についてはあまり情報がないようです。
だから私の問題は、入力と振動フィードバックのために Xbox 360 コントローラーを開こうとしているということです。SDL_HapticOpenFromJoystick()
入力が正常に機能するようになりましたが、振動のためにデバイスを開こうとすると失敗し、Bothと表示されSDL_GetError()
て0 が返されます。初期化に使用しています。"Haptic: There are 0 haptic devices availible".
SDL_NumHaptics()
SDL_JoystickIsHaptic()
SDL_Init(SDL_INIT_EVERYTHING);
Xbox 360 コントローラー自体が振動できることはわかっています。Windows 8 ラップトップに (SDL で作成されていない) ゲームがあり、コントローラーのフォース フィードバック機能を問題なく使用できるからです。
さらに情報が必要な場合は、喜んで提供します。
関連コード:
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 を使用していることを追加する必要があります...