私は現在 Scala 開発をいじっていますが、物理演算を処理するために box2d などのライブラリと統合する必要があります。問題は、独自の状態を管理する外部ライブラリに依存する必要があることです。box2d ワールドに渡すボディを追跡します。プレイ中の側面を要約するには:
- Box2d は世界の状態を管理し、各ティック/ステップの後にそれらを変更します
- この世界に渡される身体を (FP を使用して) あなたが作成します。
- Box2d はこれらのボディの状態を内部的に変更します
- オブジェクトを追跡するには、オブジェクトへの参照を保持します
- 本体の情報を使用してコードをレンダリングする可能性が高いため、その情報を追跡する唯一の方法は、可変コレクション内のすべての参照を追跡することだと思います。すべてのフレームに耐える必要があります。
だから私の質問は:
これらの参照を (関数型プログラミングの場合) 洗練された方法で追跡するにはどうすればよいでしょうか? また、コードの残りの部分で純粋性に与える影響を最小限に抑えるにはどうすればよいでしょうか?
状態モナドのようなものは、ここでは役に立たないと思います