ゲームが作れるようになるまでがんばる日記

ゲーム制作のことを中心にゲームに関することを書いています

ジョイスティックその6

ジョイスティックの状態を取得する方法として、イベントを使う方法もある。
まず、SDL_JoystickEventStateでジョイスティックのイベントを有効にして、イベントを受け取るジョイスティックをオープンする。

SDL_Joystick *joystick;

SDL_JoystickEventState(SDL_ENABLE);
joystick = SDL_JoystickOpen(0);

あとはイベントの処理ループでジョイスティックのイベントを処理すればよい。
軸のイベントはX軸とY軸が合わさったものなので注意。

SDL_Event event;

while ( SDL_PollEvent(&event) )
{
    switch( event.type )
    {
    case SDL_JOYAXISMOTION:
        if ( ( event.jaxis.value < -3200 ) || (event.jaxis.value > 3200 ) ) 
        {
            if( event.jaxis.axis == 0) 
            {
                // X軸の処理
            }

            if( event.jaxis.axis == 1) 
            {
                // Y軸の処理
            }
        }
        break;
    case SDL_JOYBUTTONDOWN:
        if ( event.jbutton.button == 0 ) 
        {
             // ボタンが押された時の処理
        }
        break;
    }
}