【问题标题】:How to modify the path of SKShapeNode on the fly?如何动态修改 SKShapeNode 的路径?
【发布时间】:2018-12-24 14:12:37
【问题描述】:

在 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 上更新路径的正确方法是什么?我想要实现的是每半秒看到一个新的线段。

【问题讨论】:

    标签: swift sprite-kit skshapenode


    【解决方案1】:

    您无法更新路径,只能用新路径替换它(即使这意味着获取路径的副本,使其可变,然后将其重新分配回您的节点)

    SKShapeNode 使用您分配给它的路径的副本,因此即使您使用可变路径,您也不会看到更改。

    对您来说最简单的事情是在更改路径后,再次将其分配给您的形状。

    【讨论】:

    • 而难点是使用描边着色器为路径设置动画?
    猜你喜欢
    • 1970-01-01
    • 2011-07-20
    • 1970-01-01
    • 2019-10-28
    • 1970-01-01
    • 2015-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多