我需要创建一个从屏幕中间开始的半径很小的圆,它从中心逐渐变长。如果圆圈是.popover('destroy')
,我有什么方法可以做到这一点?想法是为了增加半径,没有其他品质,如中风增加。
到目前为止:
SKSpriteNode
答案 0 :(得分:0)
这是实现保持线宽的扩展圆的一种方法。在函数中添加一个radius参数,并返回SKShapeNode
。此外,将节点和半径的属性添加到GameScene
类:
var randomCircle: SKShapeNode?
var currentRadius: CGFloat = 1
func makeRandomCircle(radius: CGFloat) -> SKShapeNode {
let RandomCircleShape = SKShapeNode(circleOfRadius: radius)
RandomCircleShape.position = CGPoint(x: CGRectGetMidX(self.frame), y: CGRectGetMidY(self.frame))
RandomCircleShape.strokeColor = UIColor.redColor()
RandomCircleShape.lineWidth = 2
return RandomCircleShape
}
然后通过在添加和删除主线程上的节点时更改半径来创建扩展效果:
var i = 0
while i < 300 {
let delay = 0.001 * Double(i) * Double(NSEC_PER_SEC)
let time = dispatch_time(DISPATCH_TIME_NOW, Int64(delay))
dispatch_after(time, dispatch_get_main_queue()) {
self.currentRadius += 0.25
self.randomCircle!.removeFromParent()
self.randomCircle = self.makeRandomCircle(self.currentRadius)
self.addChild(self.randomCircle!)
}
i++
}
此代码可放置在您希望效果发生的位置。
结果的GIF: