我尝试在iOS SpriteKit项目中绘制一个圆圈,但圆圈边缘不平滑。我希望有一个很好的绘制圆圈,因为我会用Photoshop(抗锯齿)绘制它。我发现了几个类似的问题,但问题仍然存在。
-(id)initWithSize:(CGSize)size
{
if (self = [super initWithSize:size])
{
self.backgroundColor = [SKColor whiteColor];
self.scaleMode = SKSceneScaleModeAspectFill;
self.size = CGSizeMake(640, 1136);
CGRect circle = CGRectMake(100.0, 100.0, 80.0, 80.0);
SKShapeNode *shapeNode = [[SKShapeNode alloc] init];
shapeNode.path = [UIBezierPath bezierPathWithOvalInRect:circle].CGPath;
shapeNode.fillColor = [SKColor redColor];
shapeNode.lineWidth = 0;
[self addChild:shapeNode];
}
return self;
}
这里的诀窍是什么?
答案 0 :(得分:14)
默认情况下会激活抗锯齿功能,但它仅适用于线条,而不适用于填充。
将lineWidth设置为大于0的数字,然后重试。
答案 1 :(得分:6)
将antialised属性设置为YES。
shapeNode.antialiased = YES;
使用填充色时,粗糙边缘不可见。
//shapeNode.fillColor = [SKColor redColor];
shapeNode.strokeColor =[SKColor redColor];
shapeNode.antialiased = YES;
shapeNode.lineWidth = 1;
现在在抗拒财产之间切换YES和NO。 你会发现差异。