Thanx先期..我有一个问题,我们如何释放内存在cocos2dx? 在我的游戏中,我的第一个场景需要大量的内存,因为在这个场景中有很多动画在同一时间运行,有很多动画,所以我对此感到满意,但是当我们进入下一个场景时,它确实不释放先前使用的内存,这是我的问题,所以当我们更改场景时,如何释放先前场景使用的内存?内存问题在cocos2dx
-1
A
回答
0
要转到场景之间,您可以拨打pushScene
或replaceScene
。
推场景
如果你的场景之间推那么我建议您之间有一个负载场景。它应该是轻量级的,以便您有机会释放您的旧场景中的所有内容。这就是onEnter(DidFinish)
和onExit(DidStart)
方法派上用场的地方。
调用链将是:
oldScene->onExitDidStart()
loadScene->onEnter()
oldScene->onExit()
< - 这是你释放一切loadScene->onEnterDidFinish()
< - 这就是你加载了新的场景newScene->onEnter()
等等......如果你已经正确地管理你的记忆,那么你不应该一次有2个沉重的场景。
更换场景
这是一个容易得多的情况。您只需确保为新场景尽可能少加载,直到旧场景完全消失。即当调用onEnterDidFinish()
时,甚至在它之后有1帧。
0
Cocos2d-x支持自动释放内存。例如,当您通过调用Sprite :: create()创建一个精灵时,它会将此精灵添加到自动发布池中。如果你不添加这个精灵成为当前场景的孩子(或第n级别的孩子),它将被释放。
请勿使用新建创建对象,请在调用下一个场景时使用create(),并释放上一个场景中的所有内容。
相关问题
- 1. Cocos2dx构建问题
- 2. 内存问题?
- 3. 内存问题
- 4. FindByIdentity在System.DirectoryServices.AccountManagment内存问题
- 5. CoreImage内存问题在ios5
- 6. 内存问题在C++
- 7. MPMoviePlayerViewController内存问题
- 8. Jboss内存问题
- 9. WPF内存问题
- 10. FragmentStatePagerAdapter内存问题
- 11. UIImageView内存问题
- 12. Prolog内存问题
- 13. WebBrowser内存问题
- 14. UIImageView - 内存问题
- 15. Android内存问题
- 16. C++内存问题
- 17. UIPopoverController内存问题
- 18. NSXMLParserDelegate内存问题
- 19. Grails内存问题
- 20. 内存流问题
- 21. ScrollView内存问题
- 22. ListView内存问题
- 23. GWT内存问题
- 24. dompdf内存问题
- 25. Python内存问题
- 26. Android内存问题
- 27. Bitmap.getBitmapResource() - 内存问题
- 28. 堆内存问题
- 29. Apache内存问题
- 30. C#内存问题