Единственный способ, который мне приходит в голову, - хранить всю эту информацию в списке или аналогичном; координаты и положения вещей, время музыкальной дорожки и т. д., а затем, когда пользователю предоставляется возможность возобновить свою последнюю сессию, вы можете просто прочитать содержимое указанного списка и все вернуть туда, где оно было.
Я понимаю, что это очень грубый ответ, но эта методология сработала в приложениях 2 & 3D, над которыми я работал в прошлом - по общему признанию, мы отслеживали только несколько десятков элементов - я уверен, что ваша игра, вероятно, будет намного больше.
В ответ на ваш комментарий:
Для этого я использовал NSUserDefaults - так что вы найдете некоторую полезную информацию, посмотрев ссылку на класс на сайте Apple. Создайте член NSUserDefaults в соответствующем месте, которое затем может опрашивать экземпляры вашей графики, классы музыки и т. Д., Чтобы выяснить, насколько они длинны - поэтому вам нужно написать метод, который возвращает эту информацию для каждого класса, который вы хотите сохранить - или : для каждого кадра получите соответствующие классы для автоматической записи их последних позиций и т. д. в ваш файл по умолчанию. Для настройки файла настроек по умолчанию ...
yourNSUserDefaultsMember = [NSUserDefaults standardUserDefaults];
[[NSUserDefaults standardUserDefaults] registerDefaults:[NSDictionary dictionaryWithContentsOfFile: [[NSBundle mainBundle]pathForResource: @"Defaults" ofType: @"plist"]]];
Чтобы это работало, вам нужно создать файл plist с именем Defaults или как вам угодно. Затем с помощью вызовов методов, расположенных в ссылке на класс, вы можете легко записать в нее строки, целые числа и т. Д.