私はすでに似たようなことを尋ねましたが、今では、単純な2D(トップダウン)カーレースゲームの「現実的な」ステアリングを管理および実現するための問題があります。
車の「リアルな」ステアリングを行うにはどうすればよいですか?(私はc#を使用していますが、別の言語を使用できます;))SinとCosを使用していますか?はいの場合、どのように?前もって感謝します!
私はすでに似たようなことを尋ねましたが、今では、単純な2D(トップダウン)カーレースゲームの「現実的な」ステアリングを管理および実現するための問題があります。
車の「リアルな」ステアリングを行うにはどうすればよいですか?(私はc#を使用していますが、別の言語を使用できます;))SinとCosを使用していますか?はいの場合、どのように?前もって感謝します!
私は昼休みにいるので、「最良の」答えに対して途方もない正義を行うことはできませんが、擬似コードは次のようになります。
y_change = sin(rotation) * speed;
x_change = cos(rotation) * speed;
car.x += x_change;
car.y += y_change;
このコードはすべてのフレームで実行します。回転はステアリング入力によって制御され、速度は加速度入力によって制御されます。
おそらく、他の誰かがすでに作成した物理エンジンを使用することをお勧めします。XNAPhysicsAPIについて良いことを聞いたことがあります。
サインとコサインを使用する必要があると思いますが、それは非常に大きな氷山の一角にすぎません...
アルゴリズムは次のとおりです。
他の誰かがどのように運転するかを記録する(ゲームの開発バージョンを使用)
(オプション)さまざまな通常の状況で、記録をスニペットに分割します。
ゲームで録音を再生します。(適切なスニペットを使用し、場合によってはそれらの間の軌道を補間します)。
ファジーロジックとシンプルなステアリングユニットモデルを試すこともできます。
モデルは次のようになります。
x = integrate horiz_velocity by t
horiz_velocity = intergate steering_angle by t
and steering_angle = fuzzy_steering_function(...)
10年前のBrianDriscollの有益な答えは、要求の厳しいアプリケーションについてこれについて知っておく必要があるすべてです。私はよく、コントローラーからの加速度によって修正された速度ベクトルを介した位置のオイラー積分を使用します。
車輪付き車両の興味深いサイドライトは、重心を中心に回転しないことです。典型的な車は、後車軸を通る線に沿った点を中心に回転しますが、横に十分にオフセットされています。
この概念は、実際の車両にとって重要です。彼らのステアリングメカニズムは、スリップによる摩耗を最小限に抑えるために、アッカーマンステアリングジオメトリに準拠しようとします。シミュレートされた車両では、これらの考慮事項は、瞬間的な曲率をモデル化し、将来の経路を予測するために重要です。