I am trying to scale an SKSpriteNode object without smoothing/anti-aliasing (I\'m using pixel-art so it looks better pixelated).
Is there a property I need to set to do
try this:
hero.xscale = 6.0f;
hero.yscale = 6.0f;
Try,
SKTexture *texture = [SKTexture textureWithImageNamed:@"Fak4o"];
texture.filteringMode = SKTextureFilteringNearest;
SKSpriteNode *newHero = [SKSpriteNode spriteNodeWithTexture:texture];
newHero.position = CGPointMake(200, 200);
[newHero setScale:50];
[self addChild:newHero];
SKTextureFilteringNearest
Each pixel is drawn using the nearest point in the texture. This mode is faster, but the results are often pixelated.
Swift:
sprite.texture!.filteringMode = .Nearest
Just a note, if you create a SKSpriteNode
instead of SKTexture
, you can set the SKTextureFilteringNearest
like in the following example:
SKSpriteNode *asteroid = [SKSpriteNode spriteNodeWithImageNamed:@"o1"];
asteroid.size = CGSizeMake(36, 24);
asteroid.position = CGPointMake(startX, startY);
asteroid.name = @"obstacle";
// >>>
asteroid.texture.filteringMode = SKTextureFilteringNearest;
// <<<
[self addChild:asteroid];