如何将位图字体添加到SpriteBuilder

3
我无法将任何.fnt/.png类型的字体添加到SpriteBuilder中,因此无法为CCLabelBMFont选择它们。该怎么做?文档似乎没有相关内容。
我正在使用这种字体:

https://github.com/cocos2d/cocos2d-iphone/blob/v3.1/Resources/Fonts/arial16.fnt https://github.com/cocos2d/cocos2d-iphone/blob/v3.1/Resources/Fonts/arial16.png

更新:目前似乎没有真正好的解决方案,除了像以下这些变通方法:
  • 在处理CCLabelBMFont时不要使用SpriteBuilder,毕竟如果你从代码中使用arial16字体,你是可以使用它的。遗憾的是,SB不支持与现有Cocos2D“捆绑”在一起的字体。当然,可能有很好的理由……

  • 在我的情况下,我只使用CCLayoutBox并向其中添加固定大小的字符精灵,根本不使用任何字体类。实际上,这样做非常快,足以制作倒计时计时器等。


1
这是一个好问题,目前还没有答案。您可能想在这里关注讨论:https://github.com/spritebuilder/SpriteBuilder/issues/98。据说问题源于使用了错误的扩展名,但我也尝试过 .bmFont 和 .bmfont,但没有成功。https://github.com/spritebuilder/SpriteBuilder/pull/529 - CodeSmile
这应该是一个相当紧迫的问题。在像倒计时器这样的东西中更新CCLabelTTF,包括毫秒,会使内存使用量非常快地增加。当然,CCLabelTTF并不是为此目的而设计的,但似乎没有其他办法...好吧,除了使用CCLabelBMFont,但要在代码中定义它,而不是使用SpriteBuilder。SpriteBuilder很好,但它不能忽略这些事情...在我看来,它不应该限制Cocos2D的现有功能。 - Jonny
2个回答

0

-1
我在旧SpriteBuilder文档中发现了这个。
显然,您需要创建一个带有扩展名.bmfont的子文件夹,其中包含名为“resource-xxxx”的子文件夹,其中包含位图字体的分辨率特定版本。

enter image description here

只有bmGlyph目前支持通过发布 -> 发布向导使用此格式。在其他工具中,您需要将字体导出到myfont.bmfont/resources-tablethd文件夹中,并指定字体大小,比如64。然后,重新导出到字体大小为32的resources-tableresources-phonehd,再次发布到字体大小为16的resources-phone

手机(高清)的实际缩放比例并不完全是50%/ 25%,请参见bmGlyph发布向导: enter image description here

我还没有尝试过这种方法,但这应该是一般的做法。我不知道是否需要所有资源文件夹,或者是否也可以使用resources-auto文件夹。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接