2017-02-24 7 views
0

私は最近ソースエンジンを調べています。より具体的には、彼らが持っているストラッピング/バンニーホッピングの動き。ここソースエンジン - 移動コード:「wishspeed」とは何ですか?

https://github.com/ValveSoftware/source-sdk-2013/blob/56accfdb9c4abd32ae1dc26b2e4cc87898cf4dc1/sp/src/game/shared/gamemovement.cpp#L1779

ソースエンジンの実際の移動コードです。私の質問は、1779行目と1784行目を指しています。ここでは、wishspeedの値はwishdir'sです。ベクトル(wishdir)が正規化されたベクトルの場合、大きさも正規化されませんか? (したがって、1の大きさになります)

何かが正規化されたときに起こることです。これが真であれば、なぜwishspeedが1の場合、if (wishspeed != 0 && **(wishspeed > mv->m_flMaxSpeed)**)の行1784のif文がありますか?コードをさらに見てみると、wishspeedは0または1ではなく、より高い値に向かっています。

誰かが私にこれをどうやって説明することができますか? 正常化する必要がある場合、スピードは1を超えることができますか?

ありがとうございます!

+2

私はソースに精通していませんが、おそらく 'VectorNormalize'はベクトルを正規化しますが、正規化前の大きさも返しますか?正規化は、正規化を行うために大きさを計算しなければならないので、一般的な最適化として返すことはできないとは思わない。 – vu1p3n0x

答えて

3

は、それを正規化する、その長さのベクトルに分割します。 Vectorを変更して元の長さを返します。

wishspeedは、正規化される前に、wishdirの長さを要する。

関連する問題