Показать сообщение отдельно
  #3 (permalink)  
Старый 11.03.2021, 14:40
Новичок на форуме
Отправить личное сообщение для SIZZZ Посмотреть профиль Найти все сообщения от SIZZZ
 
Регистрация: 05.03.2021
Сообщений: 8

Мне нужно получить не содержимое, а имя объекта.
Ситуация такая: делаю игру с инвентарем. Сначала создаю все передметы в виде объектов и добавляю их в объект "предметы". Далее создаю массив "инвентарь", куда потом добавляются найденные предметы. Чтобы сохранить игру, помещаю все нужные переменные, объекты и массивы в один объект, преобразую его в JSON и записываю в файл. При загрузке игры, сохраненный JSON преобразую обратно в объект.
Но проблема в том, что у предметов в свойствах присутствуют функции для использования их в игре. А функции не сохраняются в JSON. Поэтому при загрузке игры, предметы невозможно использовать, так как они загружаются без функций.

Можно решить эту проблему, просто обновив инвентарь после загрузки игры.

for(var i=1, i<инвентарь.length; i++){
if (инвентарь[i] !== null){
инвентарь[i] = предметы[инвентарь[i]];
}
}

Но проблема в том, что "инвентарь[i]" (содержимое: инвентарь[нож]) является объектом, поэтому такая запись добавляет в инвентарь null. Если как-то преобразовать "инвентарь[i]" в строку, то все будет работать как нужно.
Ответить с цитированием