我想在游戏中创建成就系统。我希望玩家能看到自己的成就百分比进步。
例如,如果他完成了65%-> 75%-> 100%的样子,那么
有什么方法可以将图像裁剪成看起来像圆形的进度条吗?方向,提示,吊舱或一段代码是值得赞赏的。
我的图像将是带有圆角的矩形,并且代码是用SpriteKit编写的。
答案 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)
祝你好运!