你如何在没有抗锯齿的情况下扩展SKSpirteNode?
我试图缩放一个SKSpriteNode对象没有平滑/抗锯齿(我正在使用像素艺术,所以它看起来更好的像素化)。
我需要设置一个属性来执行此操作吗? 这是我用来渲染精灵的代码:
SKTextureAtlas *atlas = [SKTextureAtlas atlasNamed:@"objects"]; SKTexture *f1 = [atlas textureNamed:@"hero_1.png"]; SKSpriteNode *hero = [SKSpriteNode spriteNodeWithTexture:f1]; [self addChild: hero]; hero.scale = 6.0f;
图像正确缩放但模糊/平滑。 这是hero_1.png 。
尝试,
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
每个像素都使用纹理中的最近点绘制。 这种模式更快,但结果往往像素化。
迅速:
sprite.texture!.filteringMode = .Nearest
请注意,如果您创buildSKSpriteNode
而不是SKTexture
,则可以像下例中那样设置SKTextureFilteringNearest
:
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];
尝试这个:
hero.xscale = 6.0f; hero.yscale = 6.0f;