開発したアプリなど一覧

XNAで360以外のコントローラを使用する。

XNA標準では DirectInput に対応したコントローラでないと認識しない様だが、手元にある初代PSコントローラが見事に対応してなかったのでどうしたもんかと思いぐぐったら解決策見つけた。XBOX360 Controller Emulator を使うと360コントローラをエミュレートする事で使用できる様になる。

ToCA EDIT -> Download Manager -> Recent Projects -> XBOX360 Controller Emulator v3.0

ダウンロードして出てきた、

xbox360cemu.ini
xinput1_3.dll

の二つのファイルをXNAアプリケーションと同一ディレクトリに保存するだけでOK
標準ではゲームを起動した瞬間にビープ音が鳴る。そのへんの設定は xbox360cemu.ini で可能。

どのボタンがどのように認識されてるかを確認するには同梱されている XInputTest.exe を使用する。

ついでなのでコントローラで操作するプログラムの一部。プレステのコントローラの十字キーはサムスティックとして認識された。むー

GamePadState currentState = GamePad.GetState(PlayerIndex.One);
if (currentState.IsConnected)
{
    if (currentState.ThumbSticks.Left.X == -1) ac_pos.X -= 4;
    if (currentState.ThumbSticks.Left.X == 1)  ac_pos.X += 4;
    if (currentState.ThumbSticks.Left.Y == 1)  ac_pos.Y -= 4;
    if (currentState.ThumbSticks.Left.Y == -1) ac_pos.Y += 4;
    if (currentState.Buttons.A == ButtonState.Pressed) hoge();
}

参考サイトですありがとうございます><

XNAで作成されたゲームでXbox360コントローラ以外のコントローラを使う方法 - Ξ[くしー] || xisaiの日記

Sponsored Link

コメント