带有UIBezierPath的SKShapeNode未完全填充

时间:2015-01-22 19:48:32

标签: ios sprite-kit uibezierpath

我想使用带有UIBezierPath的SKShapeNode绘制一个圆形的填充扇区。 在大多数情况下我工作得很好,但是角度较小时,形状没有完全填满(在弧下有一点间隙)。像这样:

enter image description here

以下是我使用的代码:

CGPoint center = CGPointMake(500, 300) ;

UIBezierPath *bezierPath = [UIBezierPath bezierPath];
[bezierPath addArcWithCenter:center radius:400   startAngle:1.825777 endAngle:2.011118 clockwise:YES];
[bezierPath addLineToPoint:center];
[bezierPath closePath];

SKShapeNode *shapeNode = [SKShapeNode shapeNodeWithPath:bezierPath.CGPath];
shapeNode.strokeColor = [UIColor whiteColor];
shapeNode.fillColor = [UIColor whiteColor];
[self addChild:shapeNode];

在iPad和模拟器(iOS 8.1)上的结果相同。

我做错了什么或是一些限制或错误?

如果用这些API不能更准确地绘制这个形状,你能不能在SpriteKit游戏的背景下建议一些其他方法来绘制它。

提前谢谢。

1 个答案:

答案 0 :(得分:2)

可能是SKShapeNode错误,请参阅http://sartak.org/2014/03/skshapenode-you-are-dead-to-me.html

一个修复方法是增加SKShapeNode的lineWidth,以填补空白。

shapeNode.lineWidth = 4

你可以使用相同的bezierPath对UIKit做同样的事情,并在drawRect中填充并描边。