みんな!私の物理エンジンは非常に順調に進んでおり (お問い合わせありがとうございます!)、さらに高度ながらくたの作業を開始する準備ができています。適切な例として、衝突が発生したときに任意のデリゲートに通知できるように、衝突エンジンをセットアップしようとしています。シナリオを設定しましょう。
物理シミュレーションにオブジェクト A、オブジェクト B、オブジェクト C があるとします。A と B の間の衝突についてデリゲートに通知し、A と C の間の衝突について潜在的に別のデリゲートに通知できるようにしたいと考えています。
少し背景情報: デリゲートの既知のインターフェイスがあり、衝突検出器の状態を保存する可能性があり (ただし、atm はしません)、オブジェクト自体に状態を保存する機能があります。同様に、このデリゲート モデルを使用して衝突解決を処理します。物理エンジンをデフォルトですべてのオブジェクトのデリゲートとして設定するだけで、ユーザーは必要に応じてデリゲートを変更できます。
ここで、各オブジェクトに、衝突が発生したときに通知される独自の衝突デリゲートを格納しようとしました。オブジェクトが同じコリジョン デリゲートを持つ場合、同じコリジョンが 2 回処理されるため、これは機能しませんでした。最初のオブジェクトのデリゲートのみを使用するように切り替えたとき (ただし、それは決定されました)、シミュレーションの順序が問題になりました。ディクショナリを使用したいのですが、かなりのオーバーヘッドが発生します。しかし、それは私が向かう必要がある方向のようです。
ここに問題があります。適切な解決策をめぐって死ぬまで戦います。この問題をどのように解決しますか?