トップページ > 記事閲覧
【要望】Xbox の DirectInput を使用したい
名前:sereparu 日時: 2019/03/13 21:50

いつもお世話になっております。 Xbox のコントローラに関する機能の要望です。 現在のDXライブラリでは、Xbox 360 や Xbox One のコントローラを接続した場合は XInput のみを検出し、DirectInput は検出しませんが、Xbox のコントローラを接続した場合でも XInput と DirectInput の両方を検出するかどうかを選択できる機能が欲しいです。 イメージとしては以下のような感じです。 SetUseXboxDirectInputFlag(int flag) ・flagが「TRUE」の場合、Xbox コントローラ接続時に、XInput と DirectInput の両方を検出する ・flagが「FALSE」の場合、Xbox コントローラ接続時に、XInput のみを検出する (初期値を「FALSE」にすれば、現行の仕様と同じになります) 上記のような機能が欲しい理由としては、XInput に対応しているコントローラを接続した場合は XInput と DirectInput の両方が検出されるという認識の下、コントローラの接続数を正しくカウントするために GetJoypadNum を使わずに、自前の処理で、DirectInput の検出数のみをカウントするようにしているためです。 (GetJoypadNum だと XInput と DirectInput の両方に対応しているコントローラは 1つだけ接続しても2つ接続されていると認識されるためです) そのため、Xbox の DirectInput を検出できないと、Xbox コントローラの接続数をカウントできなくなります。 自前の処理に例外的に Xbox だけは XInput の検出数をカウントする、という処理を追加すればいいのですが 例外を作ると、今後新型の Xbox が出た場合に、その都度例外対応が必要になり、手間になってしまうと思います。 なので、Xbox でも XInput と DirectInput の両方が検出された方が、個人的には都合が良いです。 そこで、Xbox のコントローラ使用時に、XInput と DirectInput の両方を検出するかどうかを 選択できるようにすれば、Xbox コントローラのみ対応のゲームを作る人にとっても Xbox も Xbox 以外のコントローラーも対応のゲームを作る人にとっても 両方都合が良いのではないかと考え、上記機能を提案させていただいた次第です。 お忙しいところ大変恐縮ですが、ご検討いただければ幸いです。 以上です。よろしくお願いいたします。
メンテ

Page: 1 |

Re: 【要望】Xbox の DirectInput を使用したい ( No.1 )
名前:管理人 日時:2019/03/15 00:56

ご要望承りました 早速関数を追加してみましたので、 よろしければこちらをダウンロードしてください https://dxlib.xsrv.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.zip // Windows版 BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 10.2 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース (中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい) 以下の関数を追加しました( 関数名は『Controller』を追加しました ) // Xbox360コントローラや Xbox Oneコントローラを DirectInputコントローラとしても検出するかどうかを設定する // Flag TRUE:DirectInputコントローラとしても検出する FALSE:DirectInputコントローラとしては検出しない(デフォルト) // DxLib_Init の呼び出し前でのみ実行可能です int SetUseXboxControllerDirectInputFlag( int Flag ) ; よろしければお試しください m(_ _)m
メンテ
Re: 【要望】Xbox の DirectInput を使用したい ( No.2 )
名前:sereparu(解決) 日時:2019/03/15 21:54

管理人さん いつも迅速なご対応、誠にありがとうございます。 手元の Xbox One コントローラを使って SetUseXboxControllerDirectInputFlag を TRUE にしたところ XInput と DirectInput が両方検出されていることを確認できました。 お忙しい中、細かい要望まで対応してくださり、本当にありがとうございます。 今後もよろしくお願いいたします。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存