ios - SpriteKit : How to draw custom shapes without SKShapeNode?

标签 ios swift sprite-kit

从 Apple 的 SKShapeNode 类引用以及许多开发人员那里,我听说使用 SKShapeNode 绘制您想要经常在 View 上绘制的自定义形状是一个坏主意,因为它的性能很差。

这是真的,一个带有一些自定义形状的简单应用程序使我的 CPU 占用率高达 80%,并使用了大约 80MB 的内存(在设备上更好一些)。

那么,我如何在不使用 SKShapeNode 的情况下绘制箭头等形状,因为我喜欢使用 bezierpaths 绘制的想法,因为我不需要关心显示大小。

如何在不降低质量的情况下绘制带有纹理的箭头,因为当我移动我的触摸来拉伸(stretch)箭头时它会拉伸(stretch)我的图像。使用 SKShapeNode 执行此操作非常完美,但性能不佳。

最佳答案

您始终可以使用一个 SKShapeNode 节点来创建形状,并使用 path 属性来设计形状。然后使用 let texture = scene.view.textureFromNode(shapeNode) 从场景 View 中的 SKShapeNode 创建一个纹理,并将新纹理放入 SKSpriteNode

关于ios - SpriteKit : How to draw custom shapes without SKShapeNode?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38809628/

相关文章:

ios - deleteRowsAtIndexPaths 不起作用但是 [self.tableView reloadData] 起作用

ios - 这是什么意思? "alienPosition = alien.position"

swift - SpriteKit 粒子文件位置

ios - 在 iOS/tvOS 上显示大量缩略图?

ios - 在执行之前停止后台执行

ios - Mono Boehm vs SGen GC

ios - 插入行后 UITableViewCell 动态高度中断

swift - 为什么我的默认属性值仍显示为 Init() 中的参数?

ios - Swift NSKeyedArchiver 到文件 : Unresolved Identifier

swift - 'Equatable' 不能在扩展中自动合成