2012-01-16 6 views
2

Je fais un jeu en utilisant UIView. J'utilise un grand UIView (8192x8192) comme zone de carte, (le jeu est une vue d'oiseau) avec un UIImageView étiré en travers qui affiche une texture d'herbe. Il utilise tas de mémoire, ne fonctionne pas sur les appareils plus anciens et les accidents près Xcode chaque fois que je tente de le modifier ...8192x8192 UIView Lag

Y at-il une autre méthode de création d'une carte de 8192x8192, mais sans lag?

+0

Utiliser OpenGL? Ou un cadre qui l'utilise comme cocos2d – Dani

Répondre

2

S'il est possible de coller vos graphiques, quelque chose impliquant CATiledLayer serait probablement un bon ajustement. CATiledLayer vous permet de fournir uniquement les images qui sont nécessaires pour afficher la zone actuellement visible de la vue (comme le fait Maps).

Here est un exemple de code pour l'affichage d'un fichier PDF volumineux.

+0

J'ai un scénario similaire. J'ai un jeu dans lequel les fichiers cartographiques sont stockés sous forme de png géant. Je n'ai pas encore rencontré de problème, mais j'ai peur de le faire. Cependant, je n'arrive pas à utiliser le code dans le lien avec mes propres fichiers, même ceux que je convertis en pdf. Je reçois une erreur me disant que ma chaîne d'URL est nulle. – WolfLink

+0

J'ai trouvé que CATiledLayer ne convenait pas aux cartes de jeu ... J'ai juste abandonné et fait ma propre version, en chargeant seulement UIImageViews à une certaine distance de l'écran. – Sosumi

+0

En réalité, il n'y a probablement pas de contrôles Cocoa Touch qui sont idéaux pour les jeux ... C'est pourquoi OpenGL et tous les autres moteurs de jeu iOS existent. – UIAdam