Использование памяти - большие изображения - PullRequest
1 голос
/ 04 июля 2011

Я использую Tiled, чтобы вырезать мои большие изображения для экономии памяти, но он использует то же количество? Мое изображение имеет размер 1986 x 1562 пикселей в формате PNG и занимает 31 МБ памяти во время игры. Когда я использую карту тайла, это 180 x 120 плиток в формате TMX и использует 31 МБ. Я просто что-то делаю не так? Я поместил файл TMX в свой проект вместе с файлом PNG.

Я не понимаю. У меня будет около 10 изображений такого размера в моем приложении. Что мне делать?

1 Ответ

0 голосов
/ 29 июля 2011

Во-первых, любой iPhone старше 3GS имеет максимальный размер текстуры 1024x1024.Ваша игра будет зависать на старых устройствах.Во-вторых, OpenGL округляет размер текстуры до ближайшей степени двух при создании текстур.Ваши текстуры 1986x1562 на самом деле имеют размер 2048x2048, что составляет 4 мегабайта.

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

Что вы должны сделать, это логически сгруппировать ваши текстуры в несколько изображений1024х1024.И используйте инструменты профилирования Xcode, чтобы определить, куда направляется память.

...