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