Рисование пунктирной линии в Sprite Kit с использованием SKShapeNode и CGPath
Я хочу нарисовать пунктирную линию в моей игре Sprite Kit, я могу использовать узел SKShapeNode, чтобы нарисовать нормальную линию, как показано ниже:
UIBezierPath *_path=[UIBezierPath bezierPath];
//1
CGPoint point1 = CGPointMake(100,100);
CGPoint point2 = CGPointMake(150,150);
[_path moveToPoint:point1];
[_path addLineToPoint:point2];
//2
SKShapeNode *line = [SKShapeNode node];
line.path = _path.CGPath;
Я попытался установить пунктирный шаблон в UIBezierPath следующим образом:
// adding this code at location 1 or 2 above but no effect
CGFloat dashes[] = {6, 2};
[_path setLineDash:dashes count:2 phase:0];
но пунктирная схема не применяется.
Я также попытался создать пунктирную копию CGPath непосредственно из свойства UIBezierpath.CGPath как:
CGFloat dashes[] = {6, 2};
CGPathRef aCGPath= CGPathCreateCopyByDashingPath(_path.CGPath,NULL,0,dashes,2);
line.path = aCGPath;
но тоже самое.
Я очень признателен, если кто-то может объяснить, в чем проблема и как я могу нарисовать пунктирную линию между двумя точками, применив пунктирный cgpath к skshapenode.
Редактировать: я знаю, что для этого простого примера я мог бы разделить расстояние между этими двумя точками на небольшие фиксированные расстояния и перемещать и рисовать пунктирную линию по bezeirpath, но рассмотрим путь свободной руки с точками, взятыми от прикосновений, перерисовать его очень сложно и неэффективно путь с точками фиксированной длины, затем нарисуйте штрихи. Интересно, есть ли способ применить пунктирный шаблон к пути и сделать скшапенод для его использования, это мой вопрос.