为什么永远不能更改SSBitmapFontLabelNode的大小?

时间:2016-03-08 18:58:02

标签: ios sprite-kit glyph

我需要在基于Sprite Kit的游戏中使用位图字体,而我正在使用Glyph设计器。设置SSBitmapFontLabelNode的节点大小不会改变其中文本的大小,虽然它使用的是具有size属性的SSBitmapFont,但它也不会更改字体大小。我使用bmglyph时遇到了同样的问题。

1 个答案:

答案 0 :(得分:0)

SSBitmapFontLabelNode只是一个透明的空SKSpriteNode,所有字形都是子节点,因此设置大小无效。

只要您设置线性过滤,扩展就可以正常工作。另外,请确保您拥有.skf文件的视网膜版本。

确保您拥有最新的open source version of SSBitmapFont - 将文件夹SSBitmapFont文件夹(从tvOSFontTest)拖到您的项目中。

设置这样的字体比例(Swift 3.0):

// Point size the font is to be displayed at
let desiredSize = CGFloat(42)

// Set to point size from GlyphDesigner 
let nativeSize = CGFloat(36)

let path = bundle.path(forResource: "Ancona-Ex", ofType:"skf")!
let fontUrl = URL(fileURLWithPath: path)
var labelFont: SSBitmapFont?
do {
    labelFont = try SSBitmapFont(file: fontUrl)
} catch let error as NSError {
    print("\(path): \(error)"
}
let label = labelFont?.node(from: "My Label")
if (desiredSize != nativeSize) {
    label?.setTextureFilteringMode(SKTextureFilteringMode.linear)
    label?.setScale(desiredSize/nativeSize)
}