Я использую SKShapeNode , чтобы создать элемент вида, который используется в моей игре, он должен быть похож на следующее изображение, только с 2 видимыми кривыми и цветом заливки внутри.
![enter image description here](https://i.stack.imgur.com/AbTeW.png)
Вот мой код:
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](https://i.stack.imgur.com/e3MVZ.png)
Итак, я попытался перейти к другому ar c напрямую
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](https://i.stack.imgur.com/Q1z5y.png)
Я узнал, что могу изменить правило заполнения CAShapeLayer , используя CGPathFillRule после проверяя документы Apple, но я не знаю, как подключить SKShapeNode и CGPathFillRule .
Есть идеи по этому поводу?