Spritekit线与圆角

时间:2014-10-15 13:06:13

标签: ios objective-c xcode sprite-kit

我使用SKShapeNode绘制从A点到B点的一些线条。这条线很宽,我需要对角线进行圆角处理以使其更加美观。

经过一些搜索,有一个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的新手,也许还有其他方法可以做我想要的。 如果我可以在我的线上使用一些纹理,那就太棒了。

2 个答案:

答案 0 :(得分:0)

使用CGPathCreateCopyByStrokingPath,我可以将kCGLineCapRound设置为具有圆角的线。

我还在寻找一种在我的线上应用纹理的方法。

答案 1 :(得分:0)

您可以使用SKShapeNode的lineCap属性。

    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