Ошибка памяти при анимации игр для iPhone с использованием последовательностей изображений - PullRequest
3 голосов
/ 03 июня 2009

В настоящее время я разрабатываю игру для iPhone, которая имеет множество анимаций с использованием последовательностей изображений (jpg и png с прозрачными пленками). Используя инструменты для просмотра утечек и распределения объектов, самое большее, что я видел, это увеличение объектов до менее чем 500k. Тем не менее, программа по-прежнему аварийно завершает работу и неожиданно завершает работу, когда мы переключаемся с одного уровня игры на другой. Это ненормально? Из того, что я прочитал, iPhone имеет 128 МБ памяти.

Дополнительная информация: Мы используем CAKeyFrameAnimation (согласно рекомендациям Apple) и imageNamed (чтобы изображения предварительно кэшировались). В каждом объекте Level я вижу, что dealloc вызывается, когда я переключаю один уровень и загружаю другой. Однако память, кажется, продолжает расти вверх и вверх и никогда не возвращается обратно к своему первоначальному уровню. = (

Ответы [ 3 ]

1 голос
/ 04 июня 2009

Я написал несколько советов по этой проблеме в комментариях к этому вопросу:

https://stackoverflow.com/questions/846458/iphone-animating-frame-rate-and-number-of-frames/850061#850061

1 голос
/ 03 июня 2009

Может пригодиться этот вопрос Dispelling imageNamed FUD .

Что касается iPhone, имеющего 128 МБ, вы можете проверить последние несколько постов на gamesfromwithin.com (от Ноэля Льописа) относительно фактического объема ОЗУ, который вы, вероятно, увидите в своем приложении (приложения OS / mail / iPod, использующие немного больше, чем ожидалось в настоящее время!)

0 голосов
/ 10 июня 2009

вы можете использовать для этого автоматический выпуск и вызвать явную функцию для освобождения неиспользуемого представления изображения, при котором распределение изображений будет низким, и когда будет вызвана функция delloac, вы уже проделали определенную работу, явно повторно выполнив их, поэтому при вызове delloc Это освободит большую часть памяти, попробуйте этот.

спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...