J'utilise UIImage pour rendre une carte de jeu à partir de blocs 32x32. Le code est le suivantPourquoi ai-je des performances médiocres lors du rendu d'images différentes avec UIImage sur l'iPhone
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];
}
}
Cela finit par rendre environ 150 dalles. Mon problème est quand j'exécute ce code mon temps de rendu descend à 2-3 images par seconde.
Je pensais que l'iPhone était lié, mais si je force bindex à = 1 (c'est-à-dire que je rends le même bloc 150 fois) alors je reçois un framerate complet.
Je n'arrive pas à croire que le rendu à partir de différentes UIImages soit aussi coûteux.
Quelqu'un pourrait-il s'il vous plaît me dire ce que je fais mal ...
Oh j'oublié de mentionner ma liste d'image créée à partir d'une page plus grande de la texture à l'aide CGImageCreateWithImageInRect.
Merci Rich
Est-ce que chaque indice en référence img_list une autre texture/image chargée à partir de fichiers séparés? – Venesectrix
Oh j'ai oublié de mentionner ma liste d'images créée à partir d'une page de texture plus grande en utilisant CGImageCreateWithImageInRect. – Rich
Désolé de répondre à votre question, non. – Rich