目次 - 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