Re: 複数のジョイスティックの認識がおかしい? ( No.1 ) |
- 名前:ZAP 日時:2007/11/25 09:32
その後調査したところ、どうやらDXライブラリ製のソフト全てで同じ状況のようです。
(14歳からはじめるCの本のCD-ROMに収録された
コンパイル済みサンプルでも同様の結果が・・・)
HSPで組んでいる分にはこの現象は発生しなかったので気づかなかったのですが、
当方の環境に問題があるのかもしれません(^^;
|
Re: 複数のジョイスティックの認識がおかしい? ( No.2 ) |
- 名前:ZAP 日時:2007/11/25 12:25
ちなみにlog.txtからの抜粋です。
ジョイスティックIDを入れ替えても、全く同じログが出力されています。
初期化時、ジョイスティックIDとは無関係に、4ボタンのゲームパッドが先に見つかって、
PAD1として登録されているのでしょうか?
354:DirectInput関係初期化処理
354: DirectInput7 の取得中... 成功
401: 引き続き初期化処理... 初期化成功
402: ジョイパッドの初期化...
426: 入力装置を見つけました
435: デバイスの登録名:4 ボタンのゲーム パッド
435: デバイスの製品登録名:4 ボタンのゲーム パッド
436: 周期的エフェクトの作成に失敗しました。
437: ジョイパッドの追加は正常に終了しました
443: 入力装置を見つけました
447: デバイスの登録名:USB Dual Vibration Joystick - Single
448: デバイスの製品登録名:USB Dual Vibration Joystick - Single
457: ジョイパッドの追加は正常に終了しました
458: ジョイパッドの初期化は正常に終了しました
458: マウスデバイスの初期化... 初期化成功
459: キーボードデバイスの初期化... 初期化成功
461:DirectInput 関連の初期化は正常に終了しました
|
Re: 複数のジョイスティックの認識がおかしい? ( No.3 ) |
- 名前:管理人 日時:2007/12/03 01:58
こちらで少し調べてみたのですが、DirectInput 以外のパッド入力状態を取得するAPIを
使用した場合はコントロールパネル上で設定できるコントローラIDが反映されているですが、
どうやら DirectInput を使用した場合はコントローラIDとは関係なく、検出されている
順番通りでしかパッドは列挙されないようです。
何らかの方法で検出されたパッドに割り当てられているコントローラIDを取得できない
ものかと調べてみたのですが、私が探した限りではその手段が見つかりませんでした。
( DirectInput を使用する場合は「コントローラID1が割り当てられているパッドの
入力を取得、2が割り当てられているパッドの入力を取得・・・」という形態ではなく、
初期化時に DirectInput に対して「接続されているパッドを全部列挙して」とお願いして、
接続されているパッドがコールバック関数経由で飛ばしてもらうという形態となっていて、
そのときコールバック関数の引数として渡されるパッドの情報からはコントローラIDが
取得出来ない状態となっています)
イース等の有名タイトルでもコントローラIDの設定は反映されていないようですので、
やはり DirectInput を使用する場合はコントローラIDの設定を反映させることは出来ない
のかもしれません。
DXライブラリの場合は DxLib_Init 関数を呼ぶ前に DirectInput を使用するかどうかを
設定する関数 SetUseDirectInputFlag 関数に FALSE を渡して呼んでおくことで入力処理に
DirectInput を使用しないようにすることが出来ますので、もしコントローラIDの設定が
反映されないことで何か不都合がある場合は SetUseDirectInputFlag 関数をお使いに
なってみてください。
|
Re: 複数のジョイスティックの認識がおかしい? ( No.4 ) |
- 名前:ZAP 日時:2007/12/03 13:34
管理人さま
お調べいただいたうえに対応策までご提示頂き、ありがとうございました。
DirectInputの仕様だったんですね。勉強になりました。
しかし、この仕様でなんの不満も聞こえてこないということは、
ジョイスティック複数の環境って思った以上に少ないんでしょうなあ。
|
Re: 複数のジョイスティックの認識がおかしい? ( No.5 ) |
- 名前:通りすがり 日時:2007/12/04 17:36
ちょうど複数のパッドを使うことを想定したゲームを作ろうとしていたところでしたので、
このトピックは寝耳に水でした。
プログラム部分でどうにか出来る問題ではありますが、それでも不便な仕様ですね・・・
古いファミコンゲームみたいに、起動時にパッドから入力信号を出させてIDアサインさせようかなと考えてます。
|
Re: 複数のジョイスティックの認識がおかしい? ( No.6 ) |
- 名前:ななし 日時:2007/12/23 10:59
横レスです。
>しかし、この仕様でなんの不満も聞こえてこないということは、
>ジョイスティック複数の環境って思った以上に少ないんでしょうなあ。
コントローラ接続では有名?なJoyToKeyはコントローラIDに追従していないと思われます(以前よりコントローラIDを追いかけてくれる変換ソフトを探しています)。
複数接続はあんまし需要がないのかも・・・。
|