带有图像的圆形加载栏

时间:2018-12-27 11:32:58

标签: ios swift sprite-kit

我想在游戏中创建成就系统。我希望玩家能看到自己的成就百分比进步。

例如,如果他完成了65%-> 75%-> 100%的样子,那么

https://imgur.com/a/P3l6hOQ

有什么方法可以将图像裁剪成看起来像圆形的进度条吗?方向,提示,吊舱或一段代码是值得赞赏的。

我的图像将是带有圆角的矩形,并且代码是用SpriteKit编写的。

1 个答案:

答案 0 :(得分:0)

设法解决。确实,最好,最简单的解决方案是创建一个mask_node。

    let button_image : SKSpriteNode = SKSpriteNode()
    let crop_node : SKCropNode = SKCropNode()

    let completion : CGFloat = 0.83  // from 0.0 to 1.0

    let circle_bezier_path = UIBezierPath(arcCenter: CGPoint.zero, radius: 200, startAngle: 0, endAngle: CGFloat.pi * 2 * completion, clockwise: true)
    circle_bezier_path.addLine(to: CGPoint(x: 0, y: 0))

    let mask_node : SKShapeNode = SKShapeNode(path: circle_bezier_path.cgPath)
    mask_node.zRotation = CGFloat.pi/2

    let wrapper_node = SKNode()
    wrapper_node.addChild(mask_node)

    crop_node.maskNode = wrapper_node
    crop_node.addChild(button_image)
    addChild(crop_node)

祝你好运!