2

私は、ほとんどのバックエンド コード (レンダリング、イベント、ゲーム コントローラなど) に 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 を使用していることを追加する必要があります...

4

0 に答える 0