我正在使用 UIImage 从 32x32 块渲染游戏地图。代码如下
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 从更大的纹理页面创建的图像列表。
谢谢丰富