トップページ > 記事閲覧
GetJoypadDirectInputStateについて
名前:イモテン 日時: 2016/09/08 09:08

GetJoypadDirectInputStateを使い、パッドの入力情報を確認したのですが、DUALSHOCKでいうR2とL2の入力によって変動する数値がZの+1000と-1000で、 どちらも押していない時と同時押しする時の数値がどちらも0になってしまい、同時押しの判定ができずにいます。 R2L2どちらかのZの変動する量を変えたり、Rzなどの使われていないステータスに移すことは可能なのでしょうか。
メンテ

Page: 1 |

Re: GetJoypadDirectInputStateについて ( No.1 )
名前:管理人 日時:2016/09/09 00:15

GetJoypadDirectInputState は DirectInput から得られる情報をそのまま返している関数で そして、残念ですが DirectInput から得られる情報の形をソフトウエア側から変更することはできません ( パッドの製造メーカーがドライバを書き換えてくれたりしないと駄目です… ) パッドが XInput にも対応していれば GetJoypadXInputState でも有効な情報を取得することができて、 そちらでは R2 と L2 が RightTrigger と LeftTrigger という別々の変数に格納されますので よろしければお試しになってみてください m(_ _)m // XInput から得られる入力デバイス( Xbox360コントローラ等 )の生のデータを取得する // ( XInput非対応のパッドの場合はエラーとなり -1 を返す、DX_INPUT_KEY や DX_INPUT_KEY_PAD1 など、 // キーボードが絡むタイプを InputType に渡すとエラーとなり -1 を返す ) int GetJoypadXInputState( int InputType, XINPUT_STATE *XInputState ) ; // XInput のジョイパッド入力情報 struct XINPUT_STATE { unsigned char Buttons[ 16 ] ; // ボタン16個( 添字には XINPUT_BUTTON_DPAD_UP 等を使用する、0:押されていない 1:押されている ) unsigned char LeftTrigger ; // 左トリガー( 0〜255 ) unsigned char RightTrigger ; // 右トリガー( 0〜255 ) short ThumbLX ; // 左スティックの横軸値( -32768 〜 32767 ) short ThumbLY ; // 左スティックの縦軸値( -32768 〜 32767 ) short ThumbRX ; // 右スティックの横軸値( -32768 〜 32767 ) short ThumbRY ; // 右スティックの縦軸値( -32768 〜 32767 ) } ; // XInputボタン入力定義 #define XINPUT_BUTTON_DPAD_UP (0) // デジタル方向ボタン上 #define XINPUT_BUTTON_DPAD_DOWN (1) // デジタル方向ボタン下 #define XINPUT_BUTTON_DPAD_LEFT (2) // デジタル方向ボタン左 #define XINPUT_BUTTON_DPAD_RIGHT (3) // デジタル方向ボタン右 #define XINPUT_BUTTON_START (4) // STARTボタン #define XINPUT_BUTTON_BACK (5) // BACKボタン #define XINPUT_BUTTON_LEFT_THUMB (6) // 左スティック押し込み #define XINPUT_BUTTON_RIGHT_THUMB (7) // 右スティック押し込み #define XINPUT_BUTTON_LEFT_SHOULDER (8) // LBボタン #define XINPUT_BUTTON_RIGHT_SHOULDER (9) // RBボタン #define XINPUT_BUTTON_A (12) // Aボタン #define XINPUT_BUTTON_B (13) // Bボタン #define XINPUT_BUTTON_X (14) // Xボタン #define XINPUT_BUTTON_Y (15) // Yボタン
メンテ

Page: 1 |

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

   クッキー保存