在我的场景中,我使用了三种基本形状:正方形、圆形和三角形。我想创建一个自定义的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的转换设置动画?-LMLPHP
还有一个视图剪辑…
swift - 如何在SKShapeNode中为CGPath的转换设置动画?-LMLPHP

关于swift - 如何在SKShapeNode中为CGPath的转换设置动画?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31896443/

10-13 04:00