私はc ++とSFML-2.0を使用して、2次元のターンベースの戦略ゲームを作成しています。移動はグリッドベースではなく距離ベースであり、いくつかの異なる三角形のピースが所定のターンで所定の位置で回転するか、前方に移動します。
動きは、プレイヤーが駒を移動する場所を選択するように機能します。これにより、駒が進む可能性のあるパスが生成されます。プレーヤーが決定を確認すると、ピースはそのパスに沿って目的の場所に移動します。パスは次の2つの要素によって制限されます。距離、曲がり角を考慮して、ピースが移動できる距離です(カーブがある場合、ポイントからポイントに直接ではなく、カーブに沿った長さになります)。ステアリングアングル、ピースが移動中に任意のポイント(およびすべてのポイント)で回転できる距離(たとえば、-30から30度)。
私の質問は、ピースを移動させるためにプレーヤーが選択できる潜在的な場所の範囲をどのように決定すればよいですか?
ここで使用する方程式やアルゴリズムは完全にはわかりません。私の最初の計画は非常に複雑で、実装することはほぼ不可能であり、説明は言うまでもありませんでした。この時点で、プロジェクトが停滞して完全に迷っています。
回転半径を考慮して、ユニットが移動できる範囲をどのように決定できますか?
たとえば、次の画像では。赤、青、緑の線はすべて同じ長さになります。紫色の円は、ユニットが移動できる移動範囲を示します。(形状はおそらく不正確であり、ラインはおそらく実際には同じ長さではありませんが、あなたはアイデアを得るでしょう)