2012-05-05 11 views
3

この記事「高精細マウスの動きを利用する」 - http://msdn.microsoft.com/en-us/library/windows/desktop/ee418864(v=vs.100).aspxを読むと、入力デバイスからのより正確な読みに生の入力を使用する必要があると私は推測します。Windowsでの生のマウス入力

この記事では、WM_MOUSEMOVEの主な欠点は画面の解像度に制限されていることです。

RAWMOUSE構造体を精査したところ、lLastXとlLastYは長い値であり、それらを介してデルタを取得することがわかりました。

私にはWM_MOUSEMOVEのように見え、WM_INPUTはWM_INPUTを除いて同じですが、加速(ポインタ弾道)は適用されません。

WM_MOUSEMOVEとWM_INPUTの両方が画面解像度に制限されていますか?

もしそうなら、WM_INPUTを使う利点は何ですか?

答えて

8

RAWMOUSEはマウスのネイティブ解像度に基づいてマウスの論理座標を提供します。

つまり、実際のマウスの動きがわかります。

Windowsはマウスの速度と加速度(弾道)設定を使用してカーソル位置を更新します。もちろん、2つはリンクされていないため、マウスの見かけの動きを解釈してカーソルの動きを生成する必要があります。

ポインタを制御したい場合は、Windowsのマウス弾道計算を複製する理由はありません。ただ窓がそれをするようにしてください。したがって、ポインタを制御するためには、WM_MOUSEMOVEを使用するだけです。つまり、アプリケーションでマウスアクセラレータの設定を無効にしたい場合を除きます。

しかし、プレイヤーのPOV(視点)を制御したり、マウスを使用して宇宙飛行艇などのゲーム内オブジェクトを制御したい場合は、RAWMOUSEデータを使用して、マウスの動き、それをフライトヨーク/ POVの動きに変換する独自のアルゴリズムを実装することができます。

0

これを使用する主な利点と理由は、rawInputでは2つ以上のマウスを使用できることです。現在、私は2つのプレイヤーが2つのマウス/マスで演奏できるように設計された小さなゲームプロトタイプを書いています - それはより複雑ですが、動作し、外部ライブラリをリンクする必要がないので悪くありません。

+0

同じゲームで2匹のマウスを使って少し詳しく説明できますか?どのように2つのマウスからのデータを別々のものにして、別のもののために使用しますか? 2つのマウスをPCを走らせているPCに接続すると、両方のマウスが同じポインタを制御し、私は欲しくない。事前に感謝、ステファン – noste99

関連する問題