在我的场景中,我使用了三种基本形状:正方形、圆形和三角形。我想创建一个自定义的skaction,它可以设置从一种形状到另一种形状转换的动画。
我正在尝试在spritekit中重新创建类似this的内容。
我正在使用uibezierpath为每个形状生成cgpath:
//Circles
UIBezierPath(ovalInRect: CGRect)
//Squares
UIBezierPath(rect: CGRect)
//Triangles
convenience init(triangleInRect:CGRect, centered:Bool) {
self.init()
var origin = CGPointZero
if centered {
origin = CGPoint(x: -triangleInRect.width / 2, y: -triangleInRect.height / 2)
}
moveToPoint(origin)
addLineToPoint(CGPoint(x: origin.x + triangleInRect.width, y: origin.y))
addLineToPoint(CGPoint(x: origin.x + triangleInRect.width / 2, y: origin.y + triangleInRect.height))
closePath()
}
最佳答案
动画序列…
如图1左边的图表所示,从控制点cp的点p1到p2绘制二次曲线,绘制正方形的顶部。控制点在p1p2线上,“曲线”将是一条线
将点p1和p2沿直线从正方形的角向中心移动少量,c
更新控制点cp,使其y位置高于正方形
用控制点cp绘制从p1到p2的四元曲线将生成图1右侧的曲线。如果从正方形顶部到控制点的距离与从p1(和p2)到正方形顶部的距离相同,则曲线的顶点将位于正方形上
对正方形的其他3个边重复步骤2-4
涂上肥皂,冲洗,重复步骤2-5,直到p1和p2在圆圈上
还有一幅画…
还有一个视图剪辑…
关于swift - 如何在SKShapeNode中为CGPath的转换设置动画?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31896443/