SDL_Joystick* SDL_GameControllerGetJoystick(SDL_GameController* gamecontroller)
gamecontroller | ジョイスティックオブジェクトを獲得したいゲームコントローラー |
#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は異常終了するだろう.