2012-01-16 2 views
2

Я делаю игру с использованием UIView. Я использую большой (8192x8192) UIView в качестве области карты (игра с птичьим взглядом) с растянутым по ней UIImageView, показывающим текстуру травы. Это использует кучку памяти, не работает на старых устройствах и почти падает Xcode всякий раз, когда я пытаюсь изменить его ...8192x8192 UIView Lag

Есть ли альтернативный способ создания карты 8192x8192, но без лага?

+0

Использование OpenGL? Или каркас, который использует его, как cocos2d – Dani

ответ

2

Если вы можете плировать свою графику, что-то, что связано с CATiledLayer, вероятно, будет хорошей подгонкой. CATiledLayer позволяет вам предоставлять только изображения, необходимые для отображения отображаемой в данный момент области просмотра (как это делает Maps).

Here - это пример кода для отображения большого PDF-файла.

+0

У меня похожий сценарий. У меня есть игра, в которой файлы карт хранятся как гигантские png. Я еще не сталкивался с проблемой, но, боюсь, я это сделаю. Тем не менее, я не могу использовать код в ссылке с моими собственными файлами, даже те, которые я конвертирую в pdf. Я получаю сообщение об ошибке, указывающее, что моя строка URL равна нулю. – WolfLink

+0

Я обнаружил, что CATiledLayer не подходит для игровых карт ... Я просто сдался и сделал свою собственную версию, только загружая UIImageViews на определенном расстоянии от экрана. – Sosumi

+0

На самом деле, вероятно, нет элементов управления Cocoa Touch, которые идеально подходят для игр ... Вот почему OpenGL и все другие игровые движки iOS существуют. – UIAdam