嘿傢伙!我的物理引擎相當漂亮(感謝提問!),我準備開始研究一些更高級的垃圾。舉例來說,我試圖設置我的碰撞引擎,以便在發生碰撞時通知任意委託人。讓我給你設置一個場景:碰撞檢測代理方案
假設我們在物理模擬中有對象A,對象B和對象C.我希望能夠通知代表A和B之間發生衝突,並通知潛在的不同代表A和C之間發生衝突。
有點背景信息:我有一個已知的委託接口,I有可能爲我的碰撞檢測器存儲狀態(但不要atm),並且有能力將狀態存儲在對象本身中。同樣,我使用這個委託模型來處理衝突解決方案,只需將物理引擎默認設置爲所有對象的委託,允許用戶根據需要更改委託。
現在,我已經嘗試讓每個對象存儲它自己的碰撞委託,當發生碰撞時會通知它。這不起作用,因爲當對象具有相同的碰撞委託時,相同的碰撞被處理兩次。當我切換到只使用第一個對象的委託(但是已經決定)時,仿真的順序成了一個問題。我想使用一個字典,但是會引入大量的開銷。但是,這似乎是我需要指引的方向。
所以,這裏的問題是:通過合適的解決方案與死亡作鬥爭。你會如何解決這個問題?
你的建議是有根據的。我正在設計類似的東西:一個控制器對象將物理對象作爲關鍵字來獲得委託值。然後該代表被稱爲兩個對象之間產生的碰撞。所以當A和B碰撞時,控制器查找與A和B相關聯的委託,然後當A和C發生碰撞時,它查找與A和C相關的委託。你是對的:這在存儲和複雜性方面成本很高。感謝您的建議! – Grimless 2010-10-30 18:25:15
我決定爲每個對象類型設置代表,這似乎是一個可接受的解決方案。謝謝! – Grimless 2010-11-06 03:55:16