0

私が若い頃、数学の授業で十分に注意を払っていなかったと言うのは辛いことです.

最近、Battlezone や Robot Tank などのゲームが 80 年代にどのように作られたかを考えています。そのようなゲームを作成したい場合、それらのゲームで使用されるレーダーを実装するにはどのような数学が必要で、それをどのように一人称視点に変換すればよいでしょうか? 私が分析できる例はありますか?

ご協力ありがとうございます。

4

2 に答える 2

2

このようなゲームの計算には、一般的なアプローチがいくつかあります。

  • 1 つのアプローチは、プレーヤーを含むすべてのオブジェクトの位置を直交座標系で追跡することです。Y の増加は常に同じ方向 (たとえば「北」) を表します。このアプローチがうまく機能するには、オブジェクトが移動できる空間に制限が必要です。

  • もう 1 つの方法は、上記のように固定方向の座標系でプレーヤー以外のすべての位置を追跡することですが、プレーヤーは常に 0,0 にあると仮定します。プレーヤーを特定の距離だけ移動するには、他のすべてのオブジェクトの位置をその距離だけシフトします。プレイヤーからの距離が大きくなりすぎたオブジェクトは、通常は存在しなくなりますが、場合によっては、座標を「ラップ」することも許容される場合があります (したがって、プレイヤーが基本的なコンパスの方向に十分にさまよっている場合、オブジェクトは再び表示されます)。

  • さらに別のアプローチは、プレーヤーを中心とした座標系を使用することですが、オブジェクトを継続的に回転させて、Y 方向の増加が常にプレーヤーの真正面になるようにすることです。このアプローチは描画を簡素化しますが、特に他のオブジェクトがわずかに動き回るのを避けたい場合は、プレーヤーを回転させるのにコストがかかります。一方で、このアプローチは、すべての非プレイヤー オブジェクトが十分に動き回るため、数字のショートカットによって引き起こされる迷走モーションがあまり目立たない一部のゲームでは許容範囲内で機能します。

  • 最後に、プレーヤー以外のすべての位置を極座標で保存しようとすることもできます。物事を正確に描写しようとする場合、このアプローチはあまり推奨されませんが、一部のゲームでは、非常に大まかな概算を使用して妥当な成功を収めています。

最新のハードウェアでは、最初の 2 つのアプローチのいずれかをお勧めします。後者の 2 つは、RAM の 1% 未満 (時には RAM の 1/1,000,000 未満の場合もあります。文字通り!) で、1/1000 未満で実行される 1980 年代のゲーム マシンまたはコンピューター用のゲームを作成する場合に役立ちます。今日のマシンの速度を示していますが、主に歴史的な関心のために言及されています。

ゲームが正の Y 座標系でオブジェクトの位置を保持している場合、最初にプレーヤーの位置を基準とした X と Y を計算することで、画面上のどこに表示されるかを判断できます (座標がその形式で保持されていない場合は、プレーヤー X と Y を実際の位置から)。次に、MX = X*sin(heading)+Y*cos(heading) および MY = Y*sin(heading)-X*cos(heading) を計算して、これらの座標を正の Y-is-ahead 座標に変換します。MX、MY、Z (水平線で Z 座標 0 とスクリーン座標 0) のポイントのスクリーン座標は、SX = MX/MY および SY = Z/MY になります。

オブジェクトが適切なサイズと比率で表示されるようにスケーリングと単位をいじる必要があるかもしれません。また、プレイヤーに近づきすぎるオブジェクトを描画しないようにする必要があります (さらに悪いことに、プレイヤーの後ろに移動することもありません)。

于 2013-06-08T18:51:54.097 に答える