私のゲームのパワーアップの1つは、メインスプライトのサイズを小さくすることです。そのため、メモリのために、各フレームでsprite.scaleをループする代わりに、元のスプライトよりも小さいパーセンテージサイズでスプライトを再保存し、それを置き換えたいと考えています。その後、「死」が発生するか、タイマーが切れると、元のスプライトが戻ります。
だから、私はそれを小さくするためにこのコードを使用しています:
[player setTexture:[[CCTextureCache sharedTextureCache] addImage:@"player-small.png"]];
そして、通常にリセットするためのこのコード:
[player setTexture:[[CCTextureCache sharedTextureCache] addImage:@"player-orig.png"]];
ただし、元の画像(初期化時とリセット時の両方)は正常に見えます。しかし、それを新しいスプライト(元の寸法の正確に75%の寸法)に変更すると、変更されますが、新しいスプライトの象限のみが表示されますが、元の寸法になります。
スプライトを再テクスチャリングする前にsprite.contentsizeを変更しようとしましたが、サイズを変更するだけで、画像が混乱する問題には影響しませんでした。
視覚的な例を次に示します。
オリジナル:
contentSizeを変更して再テクスチャ化された画像:
contentSizeが正しくリセットされていない元の画像に再テクスチャ化された画像(おっと、これはまったく問題ではありません-サイズコードを読み取るのを忘れただけです):
PS-私はすべてのスプライトの「-hd.png」バージョンを持っているので、誰かが知りたい場合に備えてそれを追加したかっただけです(これまでの画像とテストは「nonretina」シミュレーターでのみ行われました)。
ありがとう!
編集:問題は網膜シミュレーターでのテスト中にも発生します。