在iOS精灵套件中画出光滑的圆圈

时间:2014-06-06 09:37:54

标签: ios drawing sprite-kit geometry antialiasing

我尝试在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;
}

这里的诀窍是什么?

2 个答案:

答案 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。 你会发现差异。