特定のサイズのシーンの中央にテキストを中央に配置しようとしています。SpriteKitのCGRectの起点
func addCubeExperienceLabel(_ buttonSize : CGSize, _ buttonPos : CGPoint, _ world : Int) {
let price = SKLabelNode(fontNamed: "LCDSolid")
price.text = String(WorldPrices.fromInt(world).rawValue)
price.zPosition = 50
adjustLabelFontSizeToFitRect(labelNode: price, rect: CGRect(origin: CGPoint(x: 0, y: 0), size : buttonSize))
self.addChild(price)
}
だから私はadjustLabelFontSizeToFitRect使用:特定のサイズにSKNodeLabelのサイズを調整するには
adjustLabelFontSizeToFitRect(labelNode: price, rect: CGRect(origin: CGPoint(x: 0, y: 0), size : buttonSize))
を。しかし、私はそのラベルの原点をスクリーンの中心にしたいので、アンカーポイントが0.5、0.5であるので(0,0)。しかし、私はこれを取得:)adjustLabelFontSizeToFitRect(
をこのです:
func adjustLabelFontSizeToFitRect(labelNode:SKLabelNode, rect:CGRect) {
// Determine the font scaling factor that should let the label text fit in the given rectangle.
let scalingFactor = min(rect.width/labelNode.frame.width, rect.height/labelNode.frame.height)
// Change the fontSize.
labelNode.fontSize *= scalingFactor
// Optionally move the SKLabelNode to the center of the rectangle.
labelNode.position = CGPoint(x: rect.midX, y: rect.midY - labelNode.frame.height/2.0)
}
何も変更されていません – Pablo