swift - 如何动态修改 SKShapeNode 的路径?
问题描述
我正在创建的 didMove 某处SKShapeNode
:
path.move(to: points.first!)
let linearShapeNode = SKShapeNode()
linearShapeNode.path = path
linearShapeNode.strokeColor = .black
linearShapeNode.lineWidth = 3.0
linearShapeNode.lineCap = .round
someSprite.addChild(linearShapeNode)
路径是类成员:
var path: CGMutablePath
然后在update
场景的方法中,我在路径中添加线条:
path.addLine(to: points[index])
我希望在精灵上看到新的线条。但是,不会出现新行。如果在 addLine 之后我将路径重新分配给 SKShapeNode 的路径,那么我会看到它。但是重新绘制看起来并不理想。
在 SKShapeNode 上更新路径的正确方法是什么?我想要实现的是每半秒看到新的线段。
解决方案
您无法更新路径,只能将其替换为新路径(即使这意味着获取路径的副本,使其可变,然后将其重新分配回您的节点)
SKShapeNode 使用您分配给它的路径的副本,因此即使您使用可变路径,您也不会看到更改。
对您来说最简单的事情是在更改路径后,再次将其分配给您的形状。
推荐阅读
- python - 如何使用 python 创建 GUI 以获取用户输入并将其插入到 Excel 工作表中
- react-native - 澄清:升级到最新版本后,任何人都可以使用 react-native latest (0.61.5) 成功构建应用程序
- c - 如何确定C中字符数组中有多少个字符?
- ios - Apple 钱包活动通行证
- mysql - MySQL主从复制中的截断语句问题
- html - 自 Chrome 76 以来的崩溃边距
- java - 错误 127 无法在 mac 上编译 JNI 程序
- java - 检查java中原始数据类型的输入
- python - librosa 产生“未详细”的 MFCC 频谱图
- php - 正则表达式:在 html 中查找不包含方括号和文本的链接,例如。'[Some_Random_text]' 但可以包含空方括号 '[]'