我們是一對夫婦做遊戲。遊戲實體的數據存儲在嵌套數組中。頂層數組包含數組,每個數組對應一個實體。實體是指存儲在數組中的遊戲對象的參數和數組中引用的椋鳥對象。AS3,回收椋鳥物體
這些子數組有一個對Starling影片剪輯或Starling精靈的引用,以及對該實體約15個其他變量的引用。因此,變量不會以各種原因存儲在movieclip/sprite中。 Blitting的可能性就是其中之一。
問題是如何組織這個最好的方式,並最終實現回收椋鳥對象以減少垃圾收集問題。 我有三個建議,但我知道,別的可能會更好。
1) 具有用於每個類對象的一個「墓地」容器:一個用於小行星,一個用於playershots,一個用於.... 每當一個實體被破壞,相應的對象將轉到正確墓地。每當創建一個相同類的實體時,如果它持有任何一個,則從相應的容器中重用一個。
2) 所有被破壞的動畫片段和精靈的一個大容器。 每當一個精靈或動畫片段產生時,如果該容器包含任何東西,則從該容器中重用該對象。還應該設置正確的動畫。我不知道這是否需要大量的CPU或者可能。
3) 讓垃圾回收處理破壞的影片剪輯和精靈。不要回收它們。
我正在使用flashpunk。所以,我試圖使用這種回收的東西來提高遊戲性能。但是,遊戲變得如此複雜,我也需要像你這樣的系統,我的意思是將實體的東西引用到數組和類似的東西上......但是,回收的東西已經成爲一個真正的問題,我嘗試了很多東西解決這個問題,但是每個解決方案都會造成另一個問題所以,我放棄了使用循環... –