【发布时间】:2012-10-26 06:41:00
【问题描述】:
我需要使用多线程来动态加载额外的纹理,以减少内存占用。
示例情况是我在一个关卡中有 10 种敌人要使用,但敌人会逐个出现。 “type by type”的上下文意味着一种类型的敌人出现并且玩家杀死了它的所有实例,然后是时候调用另一种类型了。过程如此进行,直到所有类型都出来,然后关卡完成。
您可以看到最好不要在开始时立即加载所有敌人的纹理(它相当大 2048*2048 有很多动画帧,我需要在创建每种类型的敌人时创建它们) .我将其转换为多线程以在需要时加载额外的纹理。但我知道 cocos2d-x 不是线程安全的。我计划使用 CCSpriteFrameCache 类从 .plist + .png 文件加载纹理,然后在那里重新创建动画,最后从中创建一个 CCSprite 来表示一种新型的敌人实例。如果我不使用多线程,我可能会遇到加载大尺寸纹理时出现的延迟。
那么如何按照我的上述目标在 cocos2d-x 的单独线程中加载纹理?任何避免线程安全问题但仍然可以实现我的目标的想法也值得赞赏。
注意:我是在 iOS 平台上开发的。
【问题讨论】: