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を取得します。指を画面から持ち上げてタッチダウンすると、もう一方の指がまだ画面上にあるときに、その指は最初の空きインデックスを取得します。一例:
- 人差し指が押された-> 0
- 人差し指が押された-> 1
- 中指が押された-> 2
- 人差し指を離す-> 1を離す
- 人差し指を離す-> 0を離す
- 新しい指が押されました-> 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システムでは、マウスの左ボタンのみと考えていることに注意してください。タッチイベントは、マウスの左ボタンが押されたものとして解釈されます。タッチスクリーンには、明らかに左、右、中央のボタンの概念がありません。