如何告诉cocos2d不要在CCSprite中缓存加载的图像?

亚历克斯

问题很简单,因为它是该主题的提示。
生成具有相同名称但内容不同的新图像文件。
我确定该文件是从头开始生成的。(通过iexplorer进行检查,可以看到
生成了具有新内容的新图像),但是CCsprite以某种方式加载了第一个具有相同名称的文件。
不知道CCspriteFrame是否缓存它。
purgeSharedSpriteCache或removeUnusedSpriteFrames不会将其删除(如果已删除),
那么您对我来说是什么呢?

{
  NSArray *docs=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
  NSString *docPath=[docs objectAtIndex:0];
  NSString *fn=[docPath stringByAppendingPathComponent:@"tmp.png"];



  if([[NSFileManager defaultManager]fileExistsAtPath:fn])
  {
    //[CCSpriteFrameCache purgeSharedSpriteFrameCache];
    //[[CCSpriteFrameCache sharedSpriteFrameCache]removeUnusedSpriteFrames];
    //[[CCSpriteFrameCache sharedSpriteFrameCache]removeSpriteFrames];
    CCSprite *firstSprite=[CCSprite spriteWithFile:fn];
    [self regenerateNewTmpPng];//this deletes old tmp.png and generates imagefile with same name but different content
    CCSprite *secondSprite=[CCSprite spriteWithFile:fn];//this loads same content as squareSprite
  }
}
伊夫·勒伯格

您使用的CCSprite ctor会先检查缓存中的纹理。如果在缓存中找到它,它将返回一个新的带有缓存对象的ccsprite。如果不是,则将其(静默地)放入高速缓存中,并返回带有新高速缓存纹理的ccsprite。

如果需要,可以先从缓存中删除纹理

CCSprite *firstSprite=[CCSprite spriteWithFile:fn];
[self regenerateNewTmpPng];
[[CCTextureCache sharedTextureCache] removeTextureWithKey:@"tmp.png"];
CCSprite *secondSprite=[CCSprite spriteWithFile:fn];

引用。cocos2d 2.0,未经测试,但可以工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在cocos2d v3.x中更改CCSprite的图像

在Swift中使用cocos2d v3.x以编程方式更改CCSprite的图像

如何将cocos2d V3.x中的两个CCSprite与IOS进行比较

CCSpriteFrameCache在cocos2d中加载黑色图像吗?

Cocos2d:检查CCNode / CCSprite是否在显示列表中

Cocos2D图像存储

如何从Cocos2d CCLayer中删除这些信息?

如何在cocos2d中测试精灵旋转

cocos2d:将CCSprite从一层绘制到另一层

如何在不使用TexturePacker的情况下在Cocos2D中添加动画图像?

如何告诉d3不要在刻度中重复值?

如何完全删除启动屏幕,以便立即加载游戏?Cocos2d + SpriteBuilder

Cocos2d v3图像命名约定

如何在Cococ2d v2.1中从CCSprite提取图像

如何在Cocos2d iOS中播放背景音乐并了解当前播放时间?

如何在Cocos2d中并排设置两个不同的窗口

如何在Cocos2D V3上的CCScene中检测触摸?

如何在cocos2d中对子画面进行分组以进行触摸检测?

如何在Cocos2d v3中获得某种类型的子代

如何在Cocos2d 3.0中设置切换按钮?

如何在Cocos2D iPhone中以随机的时间间隔计划或调用方法

如何在cocos2d v3.7中升级“ CCLabelBMFont :: purgeCachedData”的代码?

如何在cocos2D应用程序(iOS 6)中拍照

如何告诉 Codeigniter 不要存储缓存?

cocos2d 3.0如何优先处理触摸吞咽

[Cocos2d]如何从GlSurfaceView创建位图

OpenGL:如何在Cocos2d中使精灵变暗

如何播放背景音乐(Cocos2d iOS)

Cocos2d如何切换场景