【发布时间】:2009-04-13 15:53:01
【问题描述】:
我正在使用 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 次),那么我会得到全帧率。
我不敢相信从不同的 UIImage 进行渲染会如此昂贵。
谁能告诉我我做错了什么...
哦,我忘了提及我使用 CGImageCreateWithImageInRect 从更大的纹理页面创建的图像列表。
谢谢 丰富
【问题讨论】:
-
img_list 中的每个索引是否引用从不同文件加载的不同纹理/图像?
-
哦,我忘了提到我的图像列表是使用 CGImageCreateWithImageInRect 从更大的纹理页面创建的。
-
很抱歉回答你的问题,没有。
-
这可能是一个愚蠢的问题,但是您的 GetTileIndex 函数做了多少工作?
-
return map_index[map_width * y + x];
标签: iphone performance uiimage render