LibGDX入力モジュールのポーリング



Polling Libgdx Input Module



ポーリングとは、特定のキーが押された場所、画面の人差し指がどこにあるかなど、入力デバイスの現在の状態を確認することです。これは、ほとんどのアーケードゲームに十分な、ユーザー入力を処理するための迅速で簡単な方法です。

注:投票に依存している場合は、ペースの速いボタンのプレス/リリースなど、一部のイベントを見逃す可能性があります。入力操作の特定の完全なシーケンスを確保する必要がある場合は、 イベント処理 代わりに。



次のコードは、キーボードの入力イベントをポーリングするためにのみ必要です。

boolean isAPressed = Gdx.input.isKeyPressed(Keys.A)

メソッドに渡される引数は、物理ボタンのキーコードです。このコードを覚えておく必要はありません。LibGDXには特別なコードがあります。 静的クラス 使用する可能性のあるすべてのキーコードを保存します。



タッチスクリーンとマウスのポーリング

タッチスクリーン/マウスをポーリングする方法はたくさんあります。画面上に1本以上の指があるかどうかを確認するには(マウスボタンを押すのと同じです)、次の操作を実行できます。

boolean isTouched = Gdx.input.isTouched()

マルチタッチ入力の場合、画面に特定の指(ポインター)があるかどうかに関心があるかもしれません。

// Will Return whether the screen is currently touched boolean firstFingerTouching = Gdx.input.isTouched(0) boolean secondFingerTouching = Gdx.input.isTouched(1) boolean thirdFingerTouching = Gdx.input.isTouched(2)

画面上のすべての指にはポインタインデックスがあります。最初の下向きの指はインデックス0を取得し、次の指はインデックス1を取得します。指を画面から持ち上げてタッチダウンすると、もう一方の指がまだ画面上にあるときに、その指は最初の空きインデックスを取得します。一例:



  1. 人差し指が押された-> 0
  2. 人差し指が押された-> 1
  3. 中指が押された-> 2
  4. 人差し指を離す-> 1を離す
  5. 人差し指を離す-> 0を離す
  6. 新しい指が押されました-> 0が再度割り当てられます

もちろん、デスクトップアプリケーションやブラウザアプリケーションでは、マルチタッチを行うことはできません。

ユーザーが画面に触れているかどうかを確認する場合は、次の方法を使用します。

// Will return whether the screen has just been touched boolean justTouched = Gdx.input.justTouched()

これは、画面に「タッチスクリーン続行」を表示するなど、タッチ/停止シーケンスをすばやく確認する場合に使用できます。ポーリングに基づいているため、信頼できる方法ではないことに注意してください。

特定の指の座標を取得するには、次の方法を使用できます。

int firstX = Gdx.input.getX() int firstY = Gdx.input.getY() int secondX = Gdx.input.getX(1) int secondY = Gdx.input.getY(1)

ここでは、0(デフォルト値は0)のポインター座標とポインターインデックス1を取得します。座標はデカルト座標系にあります。原点(0、0)は画面の左上隅にあり、x軸は右を指し、y軸は下を指します。

マウスボタン

デスクトップアプリでは、現在押されているマウスボタンを監視することもできます。

boolean leftPressed = Gdx.input.isButtonPressed(Input.Buttons.LEFT) boolean rightPressed = Gdx.input.isButtonPressed(Input.Buttons.RIGHT)

あなたは ボタン クラスでより一定した情報を取得します。

Androidシステムでは、マウスの左ボタンのみと考えていることに注意してください。タッチイベントは、マウスの左ボタンが押されたものとして解釈されます。タッチスクリーンには、明らかに左、右、中央のボタンの概念がありません。