ゲームパッド対応のゲームを作っています

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
シノニム

ゲームパッド対応のゲームを作っています

#1

投稿記事 by シノニム » 15年前

いつもお世話になっております。シノニムです

現在ゲームパッド(PS2用コントローラー・DUAL SHOCK2)をつかったゲームを作成しています
いざゲームの操作を家でやろうとしたら、十字キーのみが反応してくれません
コントロールパネルから見てみると、しっかり入力は受け取っている様子でした

学校で貸出しているパッドではしっかりと十字キーも動いていて、コンバータも同じものを使用しています
ネットで検索するも、なかなか求めていた答えが見当たらないので質問させていただきました

OS:windows XP
環境:Visual C++

解決方法などご存知の方いましたら、アドバイスください

迷彩吹雪

Re:ゲームパッド対応のゲームを作っています

#2

投稿記事 by 迷彩吹雪 » 15年前

自分は「ELECOM JC-U2312FSV」を使っていますが、同じような現象に遭遇しています。
やはり十字キーが反応せず、ゲームでは使用していないアナログスティックを動かすと反応します。
しかしこのゲームパッドは「ANALOG」というボタンがついていて、これを押すとアナログモードからデジタルモードに切り替わります。
すると、十字キーが反応するようになりました。
(その代わりアナログスティックには別ボタンの機能が割り振られました)

このゲームパッドはアナログモードでは十字キーにPOVなる機能が割り振られているようです。
Point of Viewの略らしいですが……すみません、よくわかりません(私も今調べたので)。
この現象はハットスイッチ問題などと呼ばれているようです。
もしかするとこれかも知れませんね。

具体的な解決法でなくてすみません。
私は上述の方法で満足してしまっているので……。

toyo

Re:ゲームパッド対応のゲームを作っています

#3

投稿記事 by toyo » 15年前

DXライブラリですよね
GetJoypadPOVState( )関数で取得できるようです
Dxlib.hより
extern int GetJoypadPOVState( int InputType, int POVNumber ) ; // ジョイパッドのPOV入力の状態を得る( 単位は角度の100倍 中心位置にある場合は -1 が返る )

int Pov;
Pov = GetJoypadPOVState( DX_INPUT_PAD1, 0 );
のようにしてPovが
0:上 
4500:右上 
9000:右
のように判断すればよさそうです

閉鎖

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