Я использую UIImage для рендеринга игровой карты из блоков 32х32. Код выглядит следующим образом
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 плиток. Моя проблема в том, что когда я запускаю этот код, мое время рендеринга уменьшается до 2-3 кадров в секунду.
Я думал, что iPhone был заполнен границей, однако, если я заставлю bindex = 1 (то есть отрендерить один и тот же блок 150 раз), я получу полную частоту кадров.
Не могу поверить, что рендеринг из разных UIImages стоит так дорого.
Может кто-нибудь сказать, пожалуйста, что я делаю не так ...
О, я забыл упомянуть мой список изображений, созданный из большой страницы текстуры с использованием CGImageCreateWithImageInRect.
Спасибо
Рич