/ / Jak zwolnić przydział pamięci po zastąpieniu CCScene w Cocos 2d? [zamknięte] - ios, cocos2d-x, cocos2d-x-3.0

Jak zwolnić pamięć przy zmianie CCScene w Cocos 2d? [zamknięty] - ios, cocos2d-x, cocos2d-x-3.0

Mam duszki, szkielety kręgosłupa, obiekty audio w konkretnej scenie. Kiedy ta 1. Scena przeminie, a następnie „2. Scena”, chcę, aby wszystkie alokacje dokonane przez 1. Scenę zostały uwolnione.

Jak to zrobić..??

Każda pomoc byłaby bardzo mile widziana !!

Odpowiedzi:

1 dla odpowiedzi № 1

Jeśli wydałeś pierwszą scenę i wszystkoduszki i szkielety kręgosłupa zostały dodane do sceny (lub dzieci sceny) bez żadnych innych odniesień, wszystkie duszki i szkielety kręgosłupa zostaną automatycznie zwolnione. nie martw się o to.

Jeśli wcześniej załadowałeś efekty dźwiękowe, powinieneś je rozładować.

Ale tekstury duszków i kręgosłupaszkielety nie zostaną zwolnione automatycznie. TextureCache zachowuje tekstury do dalszego ładowania. Powinieneś więc wywoływać removeUnusedTextures lub removeTexture / removeTextureForKey jeden po drugim.

cocos2d::TextureCache::getInstance()->removeUnusedTextures();

"Jak zoptymalizować wykorzystanie pamięci”jest dobrym dokumentem do badania wykorzystania pamięci i TextureCache.