gpt4 book ai didi

ios - 填充颜​​色时如何更改SKShapeNode的填充规则

转载 作者:行者123 更新时间:2023-12-01 19:35:49 31 4
gpt4 key购买 nike

我正在使用 SKShapeNode 创建一个用于游戏中的view元素,它应该类似于下图,其中只有2条可见曲线并内部填充颜色。

enter image description here

这是我的代码:

    override func sceneDidLoad() {

let shapeNode = SKShapeNode()
shapeNode.fillColor = .red
shapeNode.strokeColor = .white
shapeNode.lineWidth = 5

let path = CGMutablePath()
let radius:CGFloat = 250
path.addArc(center: CGPoint(x:0, y:300), radius: radius, startAngle: CGFloat.pi*7/6, endAngle: CGFloat.pi*11/6, clockwise: false)
path.addArc(center: CGPoint(x:0, y:-300), radius: radius, startAngle: CGFloat.pi*1/6, endAngle: CGFloat.pi*5/6, clockwise: false)

shapeNode.path = path

self.addChild(shapeNode)
}

但是我在右侧有一条多余的直线,这不是我想要的。

enter image description here

所以我试图直接移到另一个弧线
        path.addArc(center: CGPoint(x:0, y:300), radius: radius, startAngle: CGFloat.pi*7/6, endAngle: CGFloat.pi*11/6, clockwise: false)
path.move(to: CGPoint(x:cos(CGFloat.pi/6)*radius, y: -300+sin(CGFloat.pi/6)*radius))
path.addArc(center: CGPoint(x:0, y:-300), radius: radius, startAngle: CGFloat.pi*1/6, endAngle: CGFloat.pi*5/6, clockwise: false)

我有这样的东西,我也不想要。

enter image description here

我了解到可以在检查Apple文档后使用 CGPathFillRule 来更改 CAShapeLayer 的填充规则,但是我不知道如何连接 SKShapeNode CGPathFillRule

有什么想法吗?

最佳答案

我认为填充规则不会解决这里的问题。您需要一种方法来分隔要描边的边框部分。最简单的方法可能是创建两个形状节点,一个在您的第一种情况下完成并填充,然后在第二种情况下完成并描边。

关于ios - 填充颜​​色时如何更改SKShapeNode的填充规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60219547/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com