ゲームパッド対応にしたらキーボードで指定していないキーが反応してしまいます

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
アバター
もるも
記事: 54
登録日時: 8年前
連絡を取る:

ゲームパッド対応にしたらキーボードで指定していないキーが反応してしまいます

#1

投稿記事 by もるも » 8年前

お世話になっています。
龍神録プログラミングの館の8章の「キーコンフィグに対応させてみよう」
を参考にして自分で作っているゲームに組み込んで見たのですが。

ゲームパッドは特に問題はないのですが、
キーボードでは指定していないのにZとXとC、QやWのキーでも反応してしまいます。

コード:

Input_Pad_or_Key(&Pad[PAD_ATK ] ,CheckKeyState(KEY_INPUT_A ));
//↑ Aを押しても、Zキーを押しても反応してしまう
ほかにも右のシフトキーを押すと、
パッドに対応したキーすべて押されている状態になってしまいます。
ボタンが効かないということはなく、
どうしてこうなってしまうのかわからなくて質問させていただきました。

Visual C++ 2010 、DXライブラリを使用しています。
ゲームパッドはスーファミのコントローラー型で12個ボタンがあるものです。
よろしくお願いします。

アバター
プラム
記事: 164
登録日時: 10年前
住所: 東海地方

Re: ゲームパッド対応にしたらキーボードで指定していないキーが反応してしまいます

#2

投稿記事 by プラム » 8年前

Input_Pad_or_Key関数がどのようになっているかがわからないので何とも言えませんが。

『input_Pad_orkey』は、名前から察するに、パッドまたはキーの入力情報を処理する関数なのでは?

何をしたいのかはいまいちわかりませんが。PadとKeyの情報処理が混ざっているような気がします

アバター
もるも
記事: 54
登録日時: 8年前
連絡を取る:

Re: ゲームパッド対応にしたらキーボードで指定していないキーが反応してしまいます

#3

投稿記事 by もるも » 8年前

ノウル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とゲームパッドが設定しているのかなぁとおもうのですが、
どこをどうすればいいかわかりません。
違うゲームパッドにしたほうがいいのでしょうか??

アバター
Dixq (管理人)
管理人
記事: 1661
登録日時: 13年前
住所: 北海道札幌市
連絡を取る:

Re: ゲームパッド対応にしたらキーボードで指定していないキーが反応してしまいます

#4

投稿記事 by Dixq (管理人) » 8年前

この関数の仕様を確認してください。
http://homepage2.nifty.com/natupaji/DxL ... .html#R5N4
引数に何を与えるかで返り値が変わります。
DX_INPUT_KEY_PAD1
を渡すとキーボードとパッド混合の値が返ります。
本関数の引数には何を与えていますか?

アバター
もるも
記事: 54
登録日時: 8年前
連絡を取る:

Re: ゲームパッド対応にしたらキーボードで指定していないキーが反応してしまいます

#5

投稿記事 by もるも » 8年前

引数にDX_INPUT_KEY_PAD1を渡していました。
DX_INPUT_PAD1を渡したら上手くいきました。
DXライブラリの関数をちゃんと理解していなくて使っていました・・・。
すみません。

Dixq (管理人)さん ありがとうございました。

閉鎖

“C言語何でも質問掲示板” へ戻る