2017-06-06 5 views
0

私はlibgdxゲームライブラリを使用しているデスクトップ専用プロジェクトで作業しています。ユーザがカメラをパンするために水平スクロールするときの方法を実装しようとしています。可能であれば、libgdxのscene2dの使用を避けたいと思います。しかし、私は水平スクロールを取り込む方法を見つけることができません。 Libgdxで水平マウススクロールを検出する方法はありますか?可能であれば、libgdxのscene2dの使用を避けたいと思います。それがない場合は、awt、swing、またはjavafxを使用せずにプレーンJavaを使用する方法がありますか?Libgdx水平スクロールを検出する

答えて

0

横向きのマウススクロール?複数のスクロールホイールを備えたマウスを使用していない限り、このようなことはありません。通常、マウスにはスクロールホイールが1つあります。

ただし、マウスを水平方向に動かすことを意味する場合は、getDeltaX()を使用してキャプチャすることができます。これは生の入力であることに注意してください。これは、使用するモニター上で同じ動きをさせるために画面の幅で分割することになります。ユーザーがパンニングの速さを選択できるように、感度乗数を含めることもできます。

キーが押されているかどうかを確認して同じ入力を使用してカメラを回転させると便利なことがよくあります。この疑似コードを考えてみましょう。

void updateCamera() { 
    if (LeftShiftPressed()) { 
     RotateCamera(getNormalizedX()); 
    } else { 
     PanCamera(getNormalizedX()); 
    } 
} 

float getNormalizedX() { 
    return float(getDeltaX())/float(getScreenWidth()) 
} 

void PanCamera(float x_movement) { 
    // pan by x_movement * pan_multiplier 
} 

void RotateCamera(float x_movement) { 
    // rotate by x_movement * rotation_multiplier 
} 
+0

水平スクロールは間違いなく私の考えです。私のラップトップのタッチパッドでは、2本の指で上下にスクロールすることができます。しかし、私はタッチパッドの横に2本の指をドラッグし、横にスクロールすることもできます。私はそれをキャプチャする方法を探しています。しかし、私は実際にどのようにタッチパッド上で複数の指の動きをキャプチャするか分からない。 – user1762507

+0

@ user1762507 'getDeltaX(int)'を使って各指の位置の変化を確認できるようです。私はlibgdxがオペレーティングシステムに見られるようにジェスチャーをサポートするようには思っていません。指の検出方法については 'getX(int)'のドキュメントを見てください。 – Aaron3468