带有圆角的Spritekit线

问题描述 投票:0回答:3

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

ios objective-c xcode sprite-kit
3个回答
1
投票

您可以使用 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


0
投票

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

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


0
投票

Swift 5.x 命令现在如下所示: lineNode.lineCap = CGLineCap.round

© www.soinside.com 2019 - 2024. All rights reserved.