我想使用带有UIBezierPath的SKShapeNode绘制一个圆的填充扇区。
在大多数情况下,我都能很好地工作,但是角度较小时,形状不会完全填充(在弧形下方有一些缝隙)。像这样:
这是我使用的代码:
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游戏上下文中绘制形状的方法。
先感谢您。
最佳答案
可能是SKShapeNode错误,请参阅http://sartak.org/2014/03/skshapenode-you-are-dead-to-me.html
一种解决方法是增加SKShapeNode的lineWidth,以填补空白。shapeNode.lineWidth = 4
您可以改为使用相同的bezierPath对UIKit进行相同的操作,并在drawRect中对其进行填充和描边。
关于ios - 带有UIBezierPath的SKShapeNode未完全填充,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28097416/