2014-10-15 2 views
1

Я использую SKShapeNode для рисования некоторых линий от точки A до точки B. Линия довольно широкая, и мне нужно окружить углы, чтобы сделать их более приятными.Линия Spritekit с круглым углом

После некоторого поиска есть CGPathCreateWithRoundedRect, но я не уверен, что он может нарисовать линию по диагонали.

Я попытался добавить круг в начало строки и конец строки, но результат не идеальный, особенно если я использую glowWidth как по кругу, так и по линии.

Это, как я рисовать линию:

SKShapeNode *yourline = [SKShapeNode node]; 
CGMutablePathRef pathToDraw = CGPathCreateMutable(); 
CGPathMoveToPoint(pathToDraw, NULL, from.x, from.y); 
CGPathAddLineToPoint(pathToDraw, NULL, to.x, to.y); 
yourline.path = pathToDraw; 
[yourline setStrokeColor:[UIColor redColor]]; 
[nodeGridLines addChild:yourline]; 

Я новичок в spritekit и, может быть, есть другой способ сделать то, что я хочу. И если бы я мог использовать некоторые текстуры на моей линии, это было бы здорово.

ответ

0

С CGPathCreateCopyByStrokingPath я могу установить kCGLineCapRound, чтобы иметь линию с круглыми углами.

Я все еще ищу способ применить некоторые текстуры на моей линии.

0

Вы можете использовать свойство lineCap для SKShapeNode.

UIBezierPath *linePath = [UIBezierPath bezierPath]; 
    [linePath moveToPoint:CGPointMake(500, 300)]; 
    [linePath addLineToPoint:CGPointMake(550, 350)]; 
    SKShapeNode *lineNode = [SKShapeNode shapeNodeWithPath:linePath.CGPath]; 
    lineNode.lineCap = kCGLineCapRound; 
    lineNode.lineWidth = 10; 
    [self addChild:lineNode]; 

Результат:

enter image description here

Смежные вопросы