0

ここで何が起こっているのか理解できず、自分が愚かであることはわかっていますが、何が起こっているのかを以下に示します。

2 つの画像があります。1 つは 1024x768、もう 1 つは 2048x1536 です。それらは「背景」テクスチャです。あるテクスチャから別のテクスチャに切り替えようとしています:

CCSprite *bg = [CCSprite spriteWithFile:@"one.jpg"];
bg.scale = 0.5;
[self addChild:bg];
...
CCTexture2D* tex = [[CCTextureCache sharedTextureCache] addImage:two.jpg];
[bg setTexture: tex];

OK、これはまったく正常です。2 番目の画像は、解像度が異なるにもかかわらず、最初の画像とまったく同じスペースと寸法に完全に収まります。今、私は2番目の画像を追加しているので、最初の画像を2番目の画像にフェードさせることができます

CCSprite *newBG = [CCSprite spriteWithFile:@"two.jpg"];
newBG.scale = bg.scale;
[self addChild: newBG];

ただし、これは機能しません。画像は本来の 2 倍の大きさです。

では、ここで何が起こっているのでしょうか。スプライトが画像から作成されたときに推測できる限り、スプライトのサイズが設定され、適用されたテクスチャはスペースに合わせて自動的にスケーリングされます.2番目は、新しく作成されたスプライトが別のスプライトを使用しているため機能しませんサイズ画像?

4

1 に答える 1