GameMaker 日本語掲示板

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

14 コメント
views
16 フォロー
11

DirectInputのコントローラーでキー入力を取得する方法について気になったので、調べてみました。

私も、ぽんでりさんと同じJC-U3613Mを持っているので、DirectInputモードにして動作をチェックしました。

結論から言うと、JC-U3613Mの十字キーは、hatスイッチ=POVキーと呼ばれるもので、ボタンとは別に動作を取得できることがわかりました。
このコントローラーの十字キーは、

gamepad_hat_count(pad_id)
でハットスイッチの個数を取得して、

gamepad_hat_value(pad_id, hat_switch_num)

で、取得したいハットスイッチの番号(hat_switch_num)を指定することで、押されたボタンがわかります。
※hat_switch_numは0から始まるので、先に取得したハットスイッチ個数-1

Up = 1、Right = 2、Down = 4、Left = 8の値が返ってきます。同時押しされたときは右上なら1と2を足した3が返ってきます。

コントローラーのボタンは、

・軸(ぐりぐりのスティック)
・ボタン(AとかYとかLとかRとか普通のボタン)
・ハットスイッチ(十字キーの形が多い?POVキーとも呼ばれる)

の三種類があり、GMSでも取得するために別の関数があります。
今回、ボタンは13個ですが、軸は2つ、ハットスイッチは1つとなります。

このへんに詳しいことが書いてありましたので、参考になりました。
https://manual.yoyogames.com/GameMaker_Language/GML_Reference/Game_Input/GamePad_Input/Gamepad_Input.htm

通報 ...
  • 12
    ぽんでり 2022/04/26 (火) 21:17:22 >> 11

    うおおおおお!!ありがとうございます!!
    参考にさせて頂きます!!!感謝感激です!!!