GameMaker 日本語掲示板

DirectInputコントローラーの動作 / 13

14 コメント
views
16 フォロー
13
名前なし 2022/04/26 (火) 22:03:53 修正

さらに調べてみたら、DirectInputでもキーマッピングを自分で作れば、GameMakerが持っているXInput対応の関数でキー動作を取得できました。
サンプルと同じ様に処理したいときは、マッピングを自分で作るといいかもしれません。
とりあえずJC-U3613Mだけ動けばいいなら以下のようにすると動きました。

var mapping = gamepad_get_guid(pad_id) + "," + gamepad_get_description(pad_id);
mapping += ",platform:windows,";
mapping += "a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3,start:b11,x:b0,y:b1,";
gamepad_test_mapping(pad_id, mapping);

キーマップ指示用文字列を作って、「gamepad_test_mapping」でそれを適用するという流れです。

プログラムを動かすとmappingに入っているキーマップ文字列は以下のようになりました。

6e050320000000000000504944564944,JC-U3613M - DirectInput Mode,platform:Windows,a:b2,b:b3,x:b0,y:b1,leftshoulder:b4,rightshoulder:b5,lefttrigger:b6,righttrigger:b7,guide:b10,start:b11,leftstick:b8,rightstick:b9,dpup:h0.1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,back:b10,

キーマッピングは以下のヘルプで説明されていました。
https://manual.yoyogames.com/GameMaker_Language/GML_Reference/Game_Input/GamePad_Input/gamepad_test_mapping.htm

どうしてもDirectInputのコントローラーで対応したいなら、キー設定画面などを作って、ユーザーの設定をmappinng文字列に直してgamepad_test_mappingに渡してあげるようにすれば、どのようなコントローラーでも対応できそうです。

通報 ...