IGameInputReading
1 つの入力更新のデータをカプセル化します。 このインターフェイスのメソッドを使用すると、複数のデバイスの観点からゲーム入力を解釈できるだけでなく、入力を送信しているデバイスに関する情報を取得できます。 このインターフェイスは、ある時点でのゲーム コントローラーの状態について入力を実用的な情報に変換するのに役立ちます。
構文
class IGameInputReading : public IUnknown
メソッド
メソッド | 説明 |
---|---|
GetArcadeStickState | IGameInputReading GetArcadeStickState API リファレンス |
GetControllerAxisCount | ゲーム コントローラー上の軸の数を取得します。 |
GetControllerAxisState | IGameInputReading GetControllerAxisState API リファレンス |
GetControllerButtonCount | ゲーム コントローラー上のボタンの数を取得します。 |
GetControllerButtonState | IGameInputReading GetControllerButtonState API リファレンス |
GetControllerSwitchCount | ゲーム コントローラー上のスイッチの数を取得します。 |
GetControllerSwitchState | IGameInputReading GetControllerSwitchState API リファレンス |
GetDevice | IGameInputReading::GetDevice API |
GetFlightStickState | IGameInputReading GetFlightStickState API リファレンス |
GetGamepadState | IGameInputReading::GetGamepadState API |
GetInputKind | IGameInputReading::GetInputKind API |
GetKeyCount | ゲーム コントローラーのアクティブなキーの数を取得します。 |
GetKeyState | ゲーム コントローラー入力についてアクティブなキーの状態を取得します。 |
GetMotionState | IGameInputReading GetMotionState API リファレンス |
GetMouseState | IGameInputReading GetMouseState API リファレンス |
GetRacingWheelState | IGameInputReading GetRacingWheelState API リファレンス |
GetRawReport | デバイス入力から生データを取得します。 |
GetSequenceNumber | IGameInputReading GetSequenceNumber API リファレンス |
GetTimestamp | IGameInputReading::GetTimestamp API |
GetTouchCount | ゲーム コントローラー上のタッチ ポイントの数を取得します。 |
GetTouchState | すべてのタッチ デジタイザーから状態を取得します。 |
GetUiNavigationState | IGameInputReading GetUiNavigationState API リファレンス |
解説
デバイスから受信したすべての入力の状態の変化は IGameInputReading インスタンスでキャプチャされます。 基本的に、これは特定の時点でのデバイスの入力状態のスナップショットです。 IGameInputReading インターフェイスでは、デバイスからの生入力レポート データと、そのデータのさまざまな変換の両方にアクセスできます。
新しいレポートで生入力データをキャプチャした後、GameInput API はデータを調査して、追加の (より有用な) 表現に変換しようとします。 非常に少数の例外を除き、データは 1 つ以上の基本的な表現 (ボタンと軸の値の配列、キーの状態の配列など) に変換されます。12 可能な場合、データはゲームパッドの状態などの 1 つ以上の抽象的な固定形式の表現にも変換されます。
その結果、多くの場合、1 つの IGameInputReading インスタンスに同じ入力データの複数の "ビュー" が含まれます。 これにより、入力データに関する低レベルの詳細に必要なだけアクセスできるようにすることで、複雑さの異なる広範なアプリケーションに対応できます。 GameInputKind 列挙型で定義されている各種類の入力データについて、その種類のデータを取得するための対応する IGameInputReading メソッドが存在します。
(同じデバイスの) 2 つの連続する IGameInputReading インスタンスでキャプチャされた生レポート データだけが異なることが保証される点に注意してください。 これは、生データを変更しても、必ずしもそのデータの上位レベルの変換は変更されないためです。 この事実は、IGameInput インターフェイスのポーリングとイベント ベースの API によって理解され、適宜考慮されます。 たとえば、GameInputKindGamepad の入力の種類のフィルターを提供する (それ以外は何も提供しない) アプリケーションは、以前に計算されたゲームパッドの状態を変化させる生データを持つ読み取り値のみを受け取ります。
入力ストリームから取得されるすべての IGameInputReading はシングルトンです。同じ読み取り値を複数回取得すると、基盤となるオブジェクトの参照回数が単純にインクリメントされます。 そのため、IGameInputReading インスタンスを比較して参照の等価性を確認できます。 基になるデバイスがシステムから切断された場合や、読み取り値が非常に古く、入力ストリーム バッファーになくなった場合であっても、読み取りインスタンスに対するすべての参照が解放されるまで、IGameInputReading インスタンスは常に有効なままになります (また、それらから状態を取得することができます)。 このインターフェイスのすべてのメソッドは読み取り値に格納されているキャッシュ データを取得するだけなので、すべて非常にすばやく戻り、時間に依存するコンテキストから安全に呼び出すことができます。
要件
ヘッダー: GameInput.h
サポートされているプラットフォーム: Windows、Xbox One ファミリー本体、Xbox Series 本体