Ответ 1
Сглаживание активируется по умолчанию, но оно применяется только к строкам, а не к заполнению.
Установите значение ширины линии на число больше 0 и повторите попытку.
Я пытаюсь нарисовать один круг в моем проекте 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 и повторите попытку.
Задайте для свойства сглаживания значение YES.
shapeNode.antialiased = YES;
Грубые края не видны при использовании цвета заливки.
//shapeNode.fillColor = [SKColor redColor];
shapeNode.strokeColor =[SKColor redColor];
shapeNode.antialiased = YES;
shapeNode.lineWidth = 1;
Теперь переключитесь между YES и NO для свойства сглаживания. Вы заметите разницу.