gpt4 book ai didi

swift - 如何绘制两种不同颜色的空心圆?

转载 作者:可可西里 更新时间:2023-11-01 00:51:49 24 4
gpt4 key购买 nike

我非常熟悉绘制填充的 createEllipseInRect 形状节点,但我想知道是否有办法以编程方式执行此操作。我想要一个从中心 split 的圆圈,两边都有两种不同的颜色。我没有代码,因为我不知道从哪里开始。

something like this

非常感谢帮助。

最佳答案

您可以尝试使用 SKCropNode,这允许您只显示每个圆的一半。有关此示例,请参见下面的代码。

class GameScene: SKScene {
override func didMoveToView(view: SKView) {

anchorPoint = CGPointMake(0.5, 0.5)

// Half Circle #1

let myCrop1 = SKCropNode()

let myMask1 = SKSpriteNode(color: UIColor.blackColor(), size: CGSizeMake(100, 100))
myMask1.position.y = -50

let circle1 = SKShapeNode(circleOfRadius: 50)
circle1.lineWidth = 0
circle1.fillColor = UIColor.blueColor()

myCrop1.addChild(circle1)
myCrop1.maskNode = myMask1
addChild(myCrop1)

// Half Circle #2

let myCrop2 = SKCropNode()

let myMask2 = SKSpriteNode(color: UIColor.blackColor(), size: CGSizeMake(100, 100))
myMask2.position.y = 50

let circle2 = SKShapeNode(circleOfRadius: 50)
circle2.lineWidth = 0
circle2.fillColor = UIColor.redColor()

myCrop2.addChild(circle2)
myCrop2.maskNode = myMask2
addChild(myCrop2)


}

}

我之前并没有真正使用过 SKCropNode,所以我不确定我的代码有多好,但下面是我在 iPhone 上得到的结果。

enter image description here

编辑:如果需要,您应该能够添加第三个 SKCropNode 以使圆心透明。

编辑:下方为透明中心

class GameScene: SKScene {
override func didMoveToView(view: SKView) {

anchorPoint = CGPointMake(0.5, 0.5)

let transparentCenterMask = SKShapeNode(circleOfRadius: 50)
transparentCenterMask.lineWidth = 20
let transparentCenterCrop = SKCropNode()
transparentCenterCrop.maskNode = transparentCenterMask

// Half Circle #1

let myCrop1 = SKCropNode()

let myMask1 = SKSpriteNode(color: UIColor.blackColor(), size: CGSizeMake(100, 100))
myMask1.position.y = -50

let circle1 = SKShapeNode(circleOfRadius: 50)
circle1.lineWidth = 0
circle1.fillColor = UIColor.blueColor()

myCrop1.addChild(circle1)
myCrop1.maskNode = myMask1
transparentCenterCrop.addChild(myCrop1)

// Half Circle #2

let myCrop2 = SKCropNode()

let myMask2 = SKSpriteNode(color: UIColor.blackColor(), size: CGSizeMake(100, 100))
myMask2.position.y = 50

let circle2 = SKShapeNode(circleOfRadius: 50)
circle2.lineWidth = 0
circle2.fillColor = UIColor.redColor()

myCrop2.addChild(circle2)
myCrop2.maskNode = myMask2
transparentCenterCrop.addChild(myCrop2)

addChild(transparentCenterCrop)


}

}

enter image description here

关于swift - 如何绘制两种不同颜色的空心圆?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35109905/

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