私は、いくつかの A* ベースのアルゴリズムをテストし、それらがどのように機能するか、およびその結果を示すシミュレーター プロジェクトを行っています。アルゴリズムはすべてマルチエージェントであり、グリッド マップ環境で実行されます。
セルの 2 次元配列を含むグリッドに JPanel を使用しました。各セルはコンポーネント クラスを拡張するカスタム クラスであり、ペイント メソッドを使用して各セル内に必要なものを描画します。セル内の描画には、 Graphics.fillRect や Graphics.drawImage などのメソッドを使用して、各セルを特定の色またはアイコンで塗りつぶします)。
グリッド上のすべてのエージェントの開始位置と目標位置に特別なアイコンを使用しています。私の問題は、同じセルに複数のアイテムを描画できるようにしたいということです。
たとえば、パスに沿ってセルを特別な色でペイントすることで、エージェントの 1 つのパスを表示できるようにしたいのですが、そのパスは別のエージェントの開始位置を通過する可能性があるため、セルに色を付け、その上にアイコンを描画します。別の例では、アルファブレンディングを使用して 2 つの色を混合できるようにしたいと考えています。
アルファを持つ 1 つの色で graphics.fillRect() を使用し、アルファ値を持つ別の色で再度使用すると、最後の fillRect() が最初の呼び出しをオーバーライドするため、機能しません。
作成したのと同じセル コンポーネントを使用して必要なものを達成する方法はありますか、それとも別の方法で実装する必要がありますか? おそらく、この問題に対するより良い解決策はありますか? この件に関するアドバイスをいただければ幸いです。