Flare3D を使用してフラッシュで 3D ゲームを作成しています。トラックの長い直線セクションと短いカーブ セクションで構成されるトラックがあります。プレーヤーは自分の車を自由に操縦できますが、U ターンを行ったり、トラックを逆走したりしないようにする必要があります。
これを達成する方法のアイデアはありますか?
Flare3D を使用してフラッシュで 3D ゲームを作成しています。トラックの長い直線セクションと短いカーブ セクションで構成されるトラックがあります。プレーヤーは自分の車を自由に操縦できますが、U ターンを行ったり、トラックを逆走したりしないようにする必要があります。
これを達成する方法のアイデアはありますか?
AS3 の構文はわかりませんが、一般的な考え方は、各セグメント (少なくとも直線セグメント) の移動方向と許容可能な逸脱を定義することです。次に、プレーヤーの方向が逸脱の範囲外にある場合は、コースに戻すか、クラッシュさせるか、必要に応じて何でもします。
例:
ストレート トラック セグメントは 30 度です。偏差値は+-20。ユーザーの方向は、お尻を蹴り始める前に 10 度から 50 度の範囲である可能性があります。
それを行う1つの方法は、トラックをセグメント化することです。トラックの各セグメントには、それが向いている方向があります(ブーが言ったように)。したがって、トラックが北を向いていて、それが0/360の場合、その時点でのトラックは0になります。最初のターンを行った後、それが右に90であるとすると、その時点でのトラックの値は90になります。
十分な数のセグメントがあり、それらすべてに方向性がある場合、あなたができることは先を見据えることです。したがって、それらがセグメント10にある場合は、セグメント11を見て、そのセグメント値をbooが指す制限(+/- 20度)として使用します。それは彼らがターンにいる間にあなたが持っている問題を解決するかもしれません、彼らがターンを通して操縦することを可能にしますが、それでもクラッシュすることができます。
これは、現在のセグメントを追跡していること、および先にセグメントが1つしかないことを前提としています。トラックに選択肢がある場合は、それを採用する必要があるかもしれません。
また、
彼らがゆっくりと車を回そうとすると、私はブーに同意するでしょう。道路上の車の角度を確認し、あまり変更を加えないようにします。おそらく、ホイールを最後まで回したことを強制する音を追加して、なぜそれ以上回らないのかを理解します。
彼らが試してみるときに速く動いている場合は、クラッシュアニメーションを追加してから、車を軌道に戻します。ユーザーは、あなたがそうするとクラッシュするので、間違った方向に直面することを避けることを学ぶでしょう。