cocos2d-x 场景切换中两场景的图片集有相同图片产生的问题!!

今天遇到这样一个问题:

场景A,场景B, A要切换到B。

A中用CCSpriteFrameCache已加载a.plist, CCSpriteBatchNode加载a.png. 含有图片主角图片x.png

同样要在B中加载b.plit,b.png,也含有图片x.png.

如果直接切换,往B的batchNOde中addchild(x.png)时就是会报错,即

pSprite->getTexture()->getName() == m_pobTextureAtlas->getTexture()->getName()。

主要原因就是x.png的所在纹理名字是A场景中的,和当前B中的不是一个。

所以在B中加载新的前清除缓存,或在A结束前清除。就不会再报错了。

 

我看了下cocos2d-x的源代码,其在加入图片内容到字典时,假如key存在就跳过,不用新的覆盖旧的。

而在cocos2d中,是直接覆盖掉的。不知为什么这样,我倒觉得直接覆盖不错!!

你可能感兴趣的:(cocos2d-x,场景切换)