在节点跟随路径时更改控制点

时间:2015-03-25 23:48:52

标签: objective-c path sprite-kit curve skaction

我有一条路径,屏幕顶部有起点,屏幕底部有终点。还有使用CGPathAddCurveToPoint创建的控制点:

        //Path

        cgpath = CGPathCreateMutable();


        float xStart    = 300.0;
        float xEnd      = 400.0;

        //ControlPoint1
        float cp1X      = 335.0;
        float cp1Y      = 465.0;

        //ControlPoint2
        float cp2X      = 320.0;
        float cp2Y      = 40.0;

        CGPoint end     = CGPointMake(xEnd, -150.0);
        CGPoint cp1     = CGPointMake(cp1X, cp1Y);
        CGPoint cp2     = CGPointMake(cp2X, cp2Y);
        CGPathMoveToPoint(cgpath,NULL, xStart, self.scene.size.height);
        CGPathAddCurveToPoint(cgpath, NULL, cp1.x, cp1.y, cp2.x, cp2.y, end.x, end.y);

        //Make path visible
        SKShapeNode *line = [SKShapeNode shapeNodeWithPath:cgpath];
        [line setStrokeColor:[SKColor redColor]];
        [line setLineWidth:3.8];
        [self addChild:line];

还有一个SKShapeNode用于使路径可见(还有其他更好的方法吗?)。沿着路径移动节点是由SKAction完成的,它是这样完成的:

 SKAction *moveAlongThePath = [SKAction followPath:cgpath asOffset:NO orientToPath:YES duration:5];

现在我试图找到一种方法来改变控制点(以及起点和终点)的值,但不会中断SKAction。这意味着跟随路径的节点应该保持跟随它甚至终点被移动。这有可能吗?也许使用更新方法(可能不是那么高效)或使用其他操作?

0 个答案:

没有答案