# 9. Сохранение состояния игры

Table of Contents

9. Сохранение состояния игры

Цель

Игрок может прервать партию (свернуть приложение, вернуться в меню) и продолжить с того же положения: позиции шаров, очередь превью, очки и чей сейчас ход сохраняются на диск.

Описание выполненной работы

Добавлен автозагрузчик GameStateSave (JSON.stringify / JSON.parse_string). game_board.gd собирает словарь _make_save_payload() и вызывает _persist_game(force), которая при not force не пишет файл во время _busy (кроме завершённой партии через force там, где нужно).

Хвост цикла ИИ после await _ai_play_sequence() вынесен в _after_ai_moves_finished(), чтобы при загрузке состояния с human_turn == false выполнить только цепочку ходов ИИ без второй выкладки трёх шаров. Тексты оверлея итога вынесены в _fill_result_overlay_content() и переиспользуются при game_ended после JSON-загрузки.

При NOTIFICATION_APPLICATION_PAUSED выполняется попытка _persist_game(false) (во время анимаций запись сознательно пропускается).

Ссылка на проект: Third Planet

Ссылка на игру: Google Play Rustore

Next: 10. Кнопка «Новая игра» в меню
Аватар автора

Спасибо, что прочитали статью. Посмотрите другие материалы в архиве, там много практических разборов по разным технологиям.


godot Series

# 16. Тени

godot 16 / 19
4 min read

Тени через StyleBoxFlat у ячеек, HUD, слота баннера и карточки результата; стили кнопок на титуле и поле; лёгкий контактный затемнённый слой на шарах-планетах.

Read