11

スムージング/アンチエイリアシングなしで 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ここに画像の説明を入力です。

4

3 に答える 3

17

試す、

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
于 2013-10-05T01:26:50.907 に答える
3

SKSpriteNodeの代わりにを作成すると、次の例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];
于 2014-06-02T00:26:33.480 に答える
0

これを試して:

hero.xscale = 6.0f;
hero.yscale = 6.0f;
于 2014-08-11T07:26:51.840 に答える