トップページ > 記事閲覧
PADの入力について
名前:Deiv 日時: 2024/09/01 13:56

GetJoypadInputStateを使用してPAD入力を行っているのですが、コントローラのRT,LTボタンに反応する入力が見当たりません。 初期状態では11番目以降は対応していないとのことですが、対応させるにはどのようにすればよろしいでしょうか それとも、XBox用の関数を使用した方がよいのですか? お手すきの際にご回答いただけますと幸いです。
メンテ

Page: 1 |

Re: PADの入力について ( No.1 )
名前:管理人 日時:2024/09/02 01:56

RT, LT はアナログ入力となっているので、デジタルボタンには RT, LT が割り振られていない場合があります GetJoypadInputState 以外に、Direct Input から取得できる情報をそのまま取得するための関数 GetJoypadDirectInputState という関数があるのですが、その関数から取得できる値を全て画面に表示する こちらのサンプルで RT, LT がどの値に割り振られているのか確認できると思います #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { DINPUT_JOYSTATE input ; int i ; // ウインドウモードで起動 ChangeWindowMode( TRUE ); // DXライブラリの初期化 if( DxLib_Init() < 0 ) return -1; // 描画先を裏画面にする SetDrawScreen( DX_SCREEN_BACK ); // メインループ while( ProcessMessage() == 0 ) { // 画面のクリア ClearDrawScreen() ; // 入力状態を取得 GetJoypadDirectInputState( DX_INPUT_PAD1, &input ) ; // 画面に情報を描画 DrawFormatString( 0, 16 * 2, GetColor( 255,255,255 ), "X :%-5d Y :%-5d Z :%-5d", input.X, input.Y, input.Z ) ; DrawFormatString( 0, 16 * 3, GetColor( 255,255,255 ), "Rx:%-5d Ry:%-5d Rz:%-5d", input.Rx, input.Ry, input.Rz ) ; DrawFormatString( 0, 16 * 4, GetColor( 255,255,255 ), "Slider 0:%-3d 1:%-3d", input.Slider[ 0 ], input.Slider[ 1 ] ) ; DrawFormatString( 0, 16 * 5, GetColor( 255,255,255 ), "POV 0:%-5d 1:%-5d 2:%-5d 3:%-5d", input.POV[ 0 ], input.POV[ 1 ], input.POV[ 2 ], input.POV[ 3 ] ) ; DrawString( 0, 16 * 6, "Button", GetColor( 255,255,255 ) ) ; for( i = 0 ; i < 32 ; i ++ ) { DrawFormatString( 64 + i % 8 * 64, 16 * 7 + i / 8 * 16, GetColor( 255,255,255 ), "%2d:%d", i, input.Buttons[ i ] ) ; } // 裏画面の内容を表画面に反映 ScreenFlip(); } // DXライブラリの後始末 DxLib_End(); // ソフトの終了 return 0; } ↑ こちらのプログラムを実行した状態で RT, LT を押してみてください RT, LT を押すことで値が変化する箇所を確認できると思います m(_ _)m > それとも、XBox用の関数を使用した方がよいのですか? XInput 対応のゲームパッドでしたら、XBox用の関数( GetJoypadXInputState )を使用した方が良いと思います ( Direct Input 対応のゲームパッドの場合、メーカーによって値が割り振られる箇所が異るなど扱いが難しいので… )
メンテ

Page: 1 |

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

   クッキー保存