そのようなプログラムがどのように構成されているかについて、誰かが光を当てることができますか?
非常に多くの粒子を追跡し、それらに対して衝突検出などをチェックするために、どの Java クラスを使用するのでしょうか? パーティクルは、どのパーティクルが隣にあるか、または落下する可能性があるため、何の隣にもないことを知る必要があります。
サンドゲームが何かわからない場合に備えて、ここに例を示します。
そのようなプログラムがどのように構成されているかについて、誰かが光を当てることができますか?
非常に多くの粒子を追跡し、それらに対して衝突検出などをチェックするために、どの Java クラスを使用するのでしょうか? パーティクルは、どのパーティクルが隣にあるか、または落下する可能性があるため、何の隣にもないことを知る必要があります。
サンドゲームが何かわからない場合に備えて、ここに例を示します。
主に配列。
最も単純な物理モデルは、静止した粒子を削除することです (たとえば、下、左下、右下のワールド位置が塗りつぶされた場合): 代わりに、対応するワールド座標が塗りつぶされます。これにより、計算が管理しやすくなります。 . ワールド座標の下の左または右が空いている場合、グレインを下にシフトできるようにします。移動する粒子間の粒子の衝突は、多くの真実性を失うことなく無視できます。
(最近、どれだけの CPU パワーを割かなければならないか、まったく理解できません!)
単純なバージョンは、金曜日のゆったりとした夜に (私が今行ったように) 問題なく実装できます。フィールドを表す 2D 配列 (バイト、整数など) を使用してプログラムを作成するだけです。各ティックで、すべての要素を繰り返し、チェックを行います。
それが基本です。次に、粒子の計算を「繰り返さない」などのチェックを追加する必要があります (次の反復でチェックされる新しい位置にフラグを設定します)。
私はこのチュートリアルに従いました。これは非常に優れており、長すぎませんが、一般的な落とし穴やそのようなことを指摘しています.