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

xpe*_*int 18 geometry drawing antialiasing ios sprite-kit

我尝试在我的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;
}
Run Code Online (Sandbox Code Playgroud)

这里的诀窍是什么?

gab*_*buh 14

默认情况下会激活抗锯齿,但它仅适用于线条,而不适用于填充.

将lineWidth设置为大于0的数字,然后重试.


Son*_* VR 6

将antialised属性设置为YES.

shapeNode.antialiased = YES;
Run Code Online (Sandbox Code Playgroud)

使用填充颜色时,粗糙边缘不可见.

//shapeNode.fillColor = [SKColor redColor];
shapeNode.strokeColor =[SKColor redColor];
shapeNode.antialiased = YES;
shapeNode.lineWidth = 1;
Run Code Online (Sandbox Code Playgroud)

现在在反对财产之间切换YES和NO.你会发现差异.