0

私は現在、トップダウンの観点から衝突を処理できるようにする必要がある Ludum Dare のコーディングを行っています。私はそれらを正常に処理する方法を知っていますが、実行される可能性のある多くのものを含める予定であるため、別のクラスで bool リターンからの衝突を処理したいと考えています。私がそれを行う方法は、プレーヤーの衝突ボックスの入力長方形を関数に与え、すべての衝突を関数に保存することです。ただし、そのようにすると、移動するたびに何かに遭遇したかどうかを確認する必要があります。これを行うより良い方法はありますか?

4

1 に答える 1

0

まず第一に、特に Ludum Dare 向けのゲームを作成している場合は、単純に衝突をチェックしても問題ありません (すべてのオブジェクトを繰り返し、「これと衝突していますか?」と尋ねます)。余裕のあるプロセッサー能力。

そうは言っても、それは非常に非効率的です。これを改善するには 2 つの方法があり、多くの場合、これらは一緒に実装されます。

  1. 四分木、またはその他の形式の衝突最適化を使用する必要があります。これにより、ゲームの世界が再帰的に四分円に分割され、それぞれの四分円内に指定された数のエンティティが含まれます。これは、キャラクターがすべてのエンティティではなく、ほんの一握りのエンティティとの衝突のみをチェックしていることを意味します。
  2. イベントシステムが本当に必要です。あなたの質問から判断すると、あなたはゲーム開発の初心者です。それはまったく問題ありませんが、各エンティティを繰り返し処理することは、計算能力の無駄遣いにすぎません。イベント システム (インターネット上のどこでもそれらについて知ることができ、SFML で数え切れないほど実装されています) を使用すると、衝突が発生すると、ゲームは「それを待つ」のではなく「通知」されます。

繰り返しになりますが、どちらの手法も高度ですが、ゲーム開発の素晴らしく楽しくて過酷な世界の領域が伴います。ゴッドスピード。

于 2013-08-24T19:11:27.687 に答える