我使用 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 的新手,也许还有其他方法可以做我想做的事。 如果我可以在我的线条上使用一些纹理,那就太好了。
您可以使用 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];
结果:
使用 CGPathCreateCopyByStrokingPath 我可以将 kCGLineCapRound 设置为具有圆角的线条。
我仍在寻找一种在我的线条上应用一些纹理的方法。
Swift 5.x 命令现在如下所示: lineNode.lineCap = CGLineCap.round