お世話になっています。
龍神録プログラミングの館の8章の「キーコンフィグに対応させてみよう」
を参考にして自分で作っているゲームに組み込んで見たのですが。
ゲームパッドは特に問題はないのですが、
キーボードでは指定していないのにZとXとC、QやWのキーでも反応してしまいます。
ほかにも右のシフトキーを押すと、
パッドに対応したキーすべて押されている状態になってしまいます。
ボタンが効かないということはなく、
どうしてこうなってしまうのかわからなくて質問させていただきました。
Visual C++ 2010 、DXライブラリを使用しています。
ゲームパッドはスーファミのコントローラー型で12個ボタンがあるものです。
よろしくお願いします。
ゲームパッド対応にしたらキーボードで指定していないキーが反応してしまいます
Re: ゲームパッド対応にしたらキーボードで指定していないキーが反応してしまいます
Input_Pad_or_Key関数がどのようになっているかがわからないので何とも言えませんが。
『input_Pad_orkey』は、名前から察するに、パッドまたはキーの入力情報を処理する関数なのでは?
何をしたいのかはいまいちわかりませんが。PadとKeyの情報処理が混ざっているような気がします
『input_Pad_orkey』は、名前から察するに、パッドまたはキーの入力情報を処理する関数なのでは?
何をしたいのかはいまいちわかりませんが。PadとKeyの情報処理が混ざっているような気がします
Re: ゲームパッド対応にしたらキーボードで指定していないキーが反応してしまいます
ノウルver2.7.7v さん
Input_Pad_or_Key関数はそれぞれ対応したパッドとキーボードのキーがどちらが長く押されているかを比較し、大きい値のほうを返し、パッドとキーボードで同時入力出来ないようにしています。
追記させていただきます。
ゲームパッドの4番目のボタン(攻撃ボタン)をキーボードのAボタンに、
ゲームパッドの5番目のボタン(メニュー)をキーボードのMボタンに設定したくて
Input_Pad_or_Key(&Pad[PAD_ATK ] ,CheckKeyState(KEY_INPUT_A ));
Input_Pad_or_Key(&Pad[PAD_MENU] ,CheckKeyState(KEY_INPUT_M ));
のように設定してちゃんと思った通りに動いてくれるのですが、
そのほかに特に何も設定してないのに。
パッドの
0~3番目 ↑↓→←キー
4 Z
5 X
6 C
7 A
8 S
9 D
10 Q
11 W
全12キー(連射キー?) 右Shiftキー
が対応してしまいます。
PCとゲームパッドが設定しているのかなぁとおもうのですが、
どこをどうすればいいかわかりません。
違うゲームパッドにしたほうがいいのでしょうか??
Input_Pad_or_Key関数はそれぞれ対応したパッドとキーボードのキーがどちらが長く押されているかを比較し、大きい値のほうを返し、パッドとキーボードで同時入力出来ないようにしています。
追記させていただきます。
ゲームパッドの4番目のボタン(攻撃ボタン)をキーボードのAボタンに、
ゲームパッドの5番目のボタン(メニュー)をキーボードのMボタンに設定したくて
Input_Pad_or_Key(&Pad[PAD_ATK ] ,CheckKeyState(KEY_INPUT_A ));
Input_Pad_or_Key(&Pad[PAD_MENU] ,CheckKeyState(KEY_INPUT_M ));
のように設定してちゃんと思った通りに動いてくれるのですが、
そのほかに特に何も設定してないのに。
パッドの
0~3番目 ↑↓→←キー
4 Z
5 X
6 C
7 A
8 S
9 D
10 Q
11 W
全12キー(連射キー?) 右Shiftキー
が対応してしまいます。
PCとゲームパッドが設定しているのかなぁとおもうのですが、
どこをどうすればいいかわかりません。
違うゲームパッドにしたほうがいいのでしょうか??
- Dixq (管理人)
- 管理人
- 記事: 1661
- 登録日時: 13年前
- 住所: 北海道札幌市
- 連絡を取る:
Re: ゲームパッド対応にしたらキーボードで指定していないキーが反応してしまいます
この関数の仕様を確認してください。
http://homepage2.nifty.com/natupaji/DxL ... .html#R5N4
引数に何を与えるかで返り値が変わります。
DX_INPUT_KEY_PAD1
を渡すとキーボードとパッド混合の値が返ります。
本関数の引数には何を与えていますか?
http://homepage2.nifty.com/natupaji/DxL ... .html#R5N4
引数に何を与えるかで返り値が変わります。
DX_INPUT_KEY_PAD1
を渡すとキーボードとパッド混合の値が返ります。
本関数の引数には何を与えていますか?