目次 - API(機能別) - ゲームコントローラー - SDL_GameControllerGetJoystick

SDL_GameControllerGetJoystick

ゲームコントローラーIDからジョイスティックIDを得る. ゲームコントローラーはジョイスティックAPIで作られている. しかし, ジョイスティック関数を使えるようにするためには, 最初にジョイスティックオブジェクトを得る必要がある.

構文

SDL_Joystick* SDL_GameControllerGetJoystick(SDL_GameController* gamecontroller)

引数

gamecontrollerジョイスティックオブジェクトを獲得したいゲームコントローラー

戻り値

ジョイスティックオブジェクトを戻す. SDL_GetError()で詳細を知ることができる.

サンプルコード

#include <stdio.h> /* printf()のために必要 */

/* ... */

SDL_GameController *ctrl;
SDL_Joystick *joy;
int i;

for(i = 0; i < SDL_NumJoysticks(); ++i) {
    if (SDL_IsGameController(i)) {
        printf("\'%d\'番はジョイスティック互換のコントローラ, 名称は\'%s\'\n", i, SDL_GameControllerNameForIndex(i));
        ctrl = SDL_GameControllerOpen(i);
        joy = SDL_GameControllerGetJoystick(ctrl);
    } else {
        printf("\'%d\'番はジョイスティックと非互換のコントローラ\n", i);
    }
}

詳細

この関数で, SDL_GameControllerでジョイスティック関数を使うためのSDL_Joystickを得ることができる. これは, ジョイスティックの位置を常に, 動いていないときでも得られるので便利である. (動けばイベントが発生して軸の値が得られる.)

戻されたポインタはSDL_GameControllerのものである. SDL_JoystickClose()を呼んではならない. もし呼べば, SDLは異常終了するだろう.

SDL Wikiへのリンク

SDL_GameControllerGetJoystick - SDL Wiki