私はUIImageを使用して32x32ブロックからゲームマップをレンダリングしています。コードは次のとおりです。iPhoneでUIImageでさまざまな画像をレンダリングするとパフォーマンスが低下する理由
for(int x = 0; x < rwidth; ++x)
{
for(int y = 0; y < rheight; ++y)
{
int bindex = [current_map GetTileIndex:x :y];
CGPoint p;
p.x = x * tile_size_x;
p.y = y * tile_size_x;
[img_list[bindex] drawAtPoint:p];
}
}
これで約150タイルのレンダリングが終了します。私の問題は、このコードを実行すると、レンダリング時間が1秒あたり2-3フレームに低下することです。
私はiPhoneが塗りつぶされていると思っていましたが、bindexを強制的に1にすると(すなわち同じブロックを150回レンダリングすると)、フルフレームレートになります。
私はそれが異なるUIImagesからレンダリングするのは高価だとは思いません。
誰かがああ、私はCGImageCreateWithImageInRectを使用して、より大きなテクスチャページから作成された私のイメージリストを言及するのを忘れてしまった...私が間違ってやっている
を教えてくださいでした。
おかげ リッチ
別々のファイルからロードされた異なるテクスチャ/画像img_list参照して、各インデックスしていますか? – Venesectrix
ああ、CGImageCreateWithImageInRectを使用して、より大きなテクスチャページから作成したイメージリストについて言及していません。 – Rich
あなたの質問には申し訳ありません、いいえ。 – Rich