swift - Render text with SKRenderer
问题描述
I initialized SKRenderer in my project to use it alongside of metal. Although I'm not sure that I did it correctly, I need to know how I can render a simple 2D text with it?
For example, here is how we can draw a text with SKLabelNode
, do we have anything like it for SKRenderer?
thank you so much
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)
解决方案
您需要做的第一件事是初始化场景。
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()
但请记住 ui 层(SKRenderer)应该在最后一次渲染。
推荐阅读
- sql-server - 回收 IIS 时未提交的事务
- bash - 为什么 bash 扩展使用 zsh 得到不同的结果?
- apache-spark - 如何在 Pyspark 中编写这些代码?
- c++ - 在 C++ 中将 unique_ptr 和 shared_ptr 与函数参数一起使用
- mysql - 合并 Mysql 数据表服务器端
- ruby-on-rails - 未找到 Heroku 应用页面
- ios - 点击视图时如何使键盘出现并开始编辑文本字段
- python - 如果在循环多个页面时页面上不存在元素,则跳过项目-BeautifulSoup 和 Python
- c++ - 向量中的向量在第二维生成重复值
- python - 如何使用 matplotlib 创建自定义 python 图表