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