Рендеринг текста с помощью SKRenderer - PullRequest
2 голосов
/ 07 апреля 2020

Я инициализировал SKRenderer в своем проекте, чтобы использовать его вместе с металлом. Хотя я не уверен, что я сделал это правильно, мне нужно знать, как я могу с его помощью отобразить простой 2D-текст?

Например, вот как мы можем нарисовать текст с помощью SKLabelNode, сделайте у нас есть что-нибудь подобное для SKRenderer? большое спасибо

let winner = SKLabelNode(fontNamed: "Chalkduster")
winner.text = "You Win!"
winner.fontSize = 65
winner.fontColor = SKColor.red
winner.position = CGPoint(x: 100, y: 100)
view.addChild(winner)

1 Ответ

0 голосов
/ 08 апреля 2020

Первое, что вам нужно сделать, это инициализировать сцену.

var renderer: SKRenderer
var skScene: SKScene

в вашей функции инициализации:

renderer = SKRenderer(device: device)
// iphone 11 portrait
skScene = SKScene(size: CGSize(width: 1125, height: 2436))
renderer.scene = skScene

let winner = SKLabelNode(fontNamed: "Chalkduster")
winner.text = "You Win!"
winner.fontSize = 65
winner.fontColor = SKColor.red
winner.position = CGPoint(x: 1125 / 2, y: 2436 / 2)
skScene.addChild(winner)

и, наконец, в вашей функции рендеринга:

renderer.render(withViewport: viewport, renderCommandEncoder: renderEncoder, renderPassDescriptor: renderPassDescriptor, commandQueue: commandQueue)
renderEncoder.endEncoding()

но имейте в виду, что слой пользовательского интерфейса ( SKRenderer ) должен отображаться в последнем проходе.

...