【发布时间】:2014-08-05 16:09:29
【问题描述】:
我有一堆共享相同纹理图集的精灵,像这样
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"Atlas.plist"];
CCSprite *sprite1 = [CCSprite spriteWithSpriteFrameName:@"Star1.png"];
CCSprite *sprite2 = [CCSprite spriteWithSpriteFrameName:@"Star2.png"];
[self addChild:sprite1];
[self addChild:sprite2];
还有一堆位图字体标签,使用相同的FNT字体,像这样
CCLabelBMFont *label1 = [CCLabelBMFont labelWithString:@"label1" fntFile:@"font.fnt"];
CCLabelBMFont * label2 = [CCLabelBMFont labelWithString:@"label2” fntFile:@"font.fnt"];
[self addChild: label1];
[self addChild: label2];
它们都在同一层
我想知道是否将font.png 文件(由font.fnt 使用)打包到纹理图集中,例如使用texture packer 之类的工具,是否会导致cocos2d 使用相同的纹理图集来绘制标签和精灵
【问题讨论】:
-
有趣的想法,但您为什么不尝试一下呢?
-
@LearnCocos2D 我试过了,但它不能开箱即用,也许有人有解决方法或补丁。如果我找到解决方案,我会在这里发布。
-
检查 cclabelbmfont 初始化代码,看看它从哪里获取纹理
-
@LearnCocos2D 它通过图像文件名
[[CCTextureCache sharedTextureCache] addImage:_configuration.atlasName]从纹理缓存中检索纹理,其中_configuration.atlasName是.fnt 文件指定的文件,我想我可以通过合并两者来解决这个问题通过将 font.png 打包到 Atlas.png 中的正确位置并在 .fnt 文件中指定该文件,将图像文件 Atlas.png 和 font.png 合并为一张大图像
标签: cocos2d-iphone texturepacker bitmap-fonts