Rysowanie przerywanej linii w zestawie Sprite za pomocą SKShapeNode i CGPath

Chcę narysować przerywaną linię w mojej grze zestawu ikon, mogę użyć węzła SKShapeNode, aby narysować normalną linię, jak poniżej:

 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;

Próbowałem ustawić przerywany wzór na UIBezierPath w ten sposób:

// adding this code at location 1 or 2 above but no effect
CGFloat dashes[] = {6, 2};
[_path setLineDash:dashes count:2 phase:0];

ale przerywany wzór nie jest stosowany.

Próbowałem również utworzyć przerywaną kopię CGPath bezpośrednio z właściwości UIBezierpath.CGPath jako:

 CGFloat dashes[] = {6, 2};
 CGPathRef aCGPath= CGPathCreateCopyByDashingPath(_path.CGPath,NULL,0,dashes,2);
line.path = aCGPath;

ale także to samo.

Naprawdę doceniam, jeśli ktoś mógłby wyjaśnić, jaki jest problem i jak mogę narysować przerywaną linię między dwoma punktami, stosując przerywaną cgpath do skshapenode.

Edycja: Wiem, że dla tego prostego przykładu mogę podzielić odległość między tymi dwoma punktami na małe ustalone odległości, a przesuwanie i rysowanie linii przerywanej przez bezeirpath, ale rozważenie ścieżki wolnej ręki z punktami pochodzi z dotyku, jest to bardzo skomplikowane i nieefektywne przerysowanie ścieżka ze stałymi punktami długości, a następnie rysuj kreski. Zastanawiam się, czy istnieje sposób na zastosowanie przerywanego wzoru na ścieżce i sprawienie, by skshapenode go używał, co jest moim pytaniem.

questionAnswers(2)

yourAnswerToTheQuestion