glfwのパッド入力を使ってみる

アバター
馬場自由
記事: 15
登録日時: 12年前

glfwのパッド入力を使ってみる

投稿記事 by 馬場自由 » 12年前

とりあえずWindows,Ubuntu,CentOSで動くことを確認できたのでメモ。

CODE:

  unsigned char k[10] = {0};
  float a[3] = {0};
  // ウインドウ閉じるまでループ
  while ( glfwGetWindowParam(GLFW_OPENED) ) {  
    glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );

    glfwGetJoystickButtons( GLFW_JOYSTICK_1 , k , 10 );
    glfwGetJoystickPos( GLFW_JOYSTICK_1 , a , 2);
    glfwSwapBuffers();
  }
だいたいこんな書き方で動きました。ボタンと十字キーの入力は別々に取る模様。
ボタンの方は、入力があるとボタンidが指す配列要素-1に1が格納され、同時入力に対応してるようです。
つまり、ボタン1が押されたら要素0の値が1になり、ボタン6なら要素5の値が1になる感じ。
十字キーはX軸Y軸を個別に取り、キーの右を+、左を-とした値が配列要素の先頭に、
上を+、下を-とした値が次の要素に格納されてました。
自分のパッドでは±1が限界値だったけど、きっとスティック入力とかなら
もっと大きい値になるんじゃないかなと思います。

リファレンスを見た限りでは、パッドは16個まで同時認識するようなので、結構好き勝手出来る感じです。
glfwのリファレンスって結構読みやすくてイイですね。
辞書引かずに英文スラスラ読めたのは久しぶりなので気に入りました(w
イイ機能持っててもリファレンスがダメだと使う気にならないんで、ここはとても高ポイントです。

技術文書の書き方はMicrosoftも見習って欲しい・・・
MSDNのアレはロジカルシンキングの練習してない人間が書いた文章に違いない

アバター
h2so5
副管理人
記事: 2212
登録日時: 14年前

RE: glfwのパッド入力を使ってみる

投稿記事 by h2so5 » 12年前

馬場自由 さんが書きました: 自分のパッドでは±1が限界値だったけど、きっとスティック入力とかなら
もっと大きい値になるんじゃないかなと思います。
試してないですけど、アナログスティックの場合も最大値は±1だと思いますよ。半分ぐらい押しこむと0.5くらいの数値になります。

アバター
馬場自由
記事: 15
登録日時: 12年前

Re: glfwのパッド入力を使ってみる

投稿記事 by 馬場自由 » 12年前

へーそうなんですか
うっかり1.0を閾値にしちゃうと感度の悪いコントローラーになりそうですね。情報ありがとうございますっ