挖掘如下图所示的形状,可以触摸和移动每个形状。所以我认为SpriteKit与UIBezierPath相结合可以做到。
这是我的代码:
for i in 1...20{
let shape = SKShapeNode()
shape.path = createPointerPath().cgPath
shape.position = CGPoint(x: frame.midX-10, y: frame.midY+40)
shape.fillColor = UIColor(red: 1.0, green: 0.439, blue: 0.678, alpha: 1.0)
shape.strokeColor = .white
shape.lineWidth = 2
shape.name = "\(i)"
let r = SKAction.rotate(byAngle: CGFloat(i)*15.0, duration: 0.1)
shape.run(r)
addChild(shape)
shapeArr.append(shape)
}
创建shap:
func createPointerPath() -> UIBezierPath {
let pointerHeight:CGFloat = 80
let pointerWidth: CGFloat = 20
let pointerPath = UIBezierPath()
pointerPath.move(to: CGPoint(x:pointerWidth / 2, y:0))
pointerPath.addCurve(to: CGPoint(x:pointerWidth / 2, y:pointerHeight),
controlPoint1: CGPoint(x:pointerWidth / 2, y:0), controlPoint2: CGPoint(x:-pointerWidth, y:pointerHeight))
pointerPath.addCurve(to: CGPoint(x:pointerWidth / 2, y:0),
controlPoint1: CGPoint(x:pointerWidth * 2, y:pointerHeight), controlPoint2: CGPoint(x:pointerWidth / 2, y:0))
return pointerPath
}
我得到了以下内容:
形状只是旋转成圆圈。这里有两个问题:
笔画看起来很丑,每个形状只有一半。
我真正想要的是:
- 首先获取形状编号。
- 从固定边距计算每个形状的宽度,以便平均显示每个形状。
- 从中心创建形状,但不能旋转。
任何人都可以提出更多建议吗?
THX。