我有一条路径,屏幕顶部有起点,屏幕底部有终点。还有使用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。这意味着跟随路径的节点应该保持跟随它甚至终点被移动。这有可能吗?也许使用更新方法(可能不是那么高效)或使用其他操作?