Подтвердить что ты не робот

Нарисуйте гладкий круг в наборе спрайтов iOS

Я пытаюсь нарисовать один круг в моем проекте 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;
}

В чем тут трюк?

4b9b3361

Ответ 1

Сглаживание активируется по умолчанию, но оно применяется только к строкам, а не к заполнению.

Установите значение ширины линии на число больше 0 и повторите попытку.

Ответ 2

Задайте для свойства сглаживания значение YES.

shapeNode.antialiased = YES;

Грубые края не видны при использовании цвета заливки.

//shapeNode.fillColor = [SKColor redColor];
shapeNode.strokeColor =[SKColor redColor];
shapeNode.antialiased = YES;
shapeNode.lineWidth = 1;

Теперь переключитесь между YES и NO для свойства сглаживания. Вы заметите разницу.