Понедельник, 25 Ноября 2024, 05:28

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Загрузка и сохранение в разных комнатах GM1.4
kakaroshkiДата: Понедельник, 14 Июня 2021, 15:12 | Сообщение # 1
был не раз
Сейчас нет на сайте
Я сделал сохранение Через INI. В него записываются три переменные:
o_hero.x, o_hero.y, и room.
Персонаж (объект o_hero) - постоянный

Когда игра впервые запускается, персонаж появляется в комнате 5.
В процессе игры я хожу и сохраняюсь в комнате 1.
Когда я запускаю игру ,во второй раз загрузив сохранение, то персонажа в комнате 1 нету.

как мне его там "появить"?


Сообщение отредактировал kakaroshki - Понедельник, 14 Июня 2021, 15:13
UNIT02_GAMES_STUDIOДата: Понедельник, 14 Июня 2021, 16:08 | Сообщение # 2
почетный гость
Сейчас нет на сайте
Не совсем понятно как сейчас это у тебя реализовано... Как бы я например мог это сделать: (не гарантирую правильность кода, написал только что без проверки)

Для начала я бы не стал использовать INI, так как не очень удобно и имеется слишком "прямой" доступ к переменным внутри него.

Допустим игрок сохраняется (реализовать можно по разному, я например сделаю столкновение с невидимым объектом), в котором при столкновении с игроком срабатывает такой код:

Код
var txt, file_name; // Временные переменные

file_name = "save.save" // Создается файл с сохранением

if file_name != ''
{
txt = file_text_open_write("save.save") // Открывает файл

file_text_write_string(txt,instance_create('+string(player.x)+','+string(player.y)+',player)) // Записывается кусок кода в файл
file_text_writeln(txt)

file_text_close(txt) // Файл закрывается
}


Все, по задумке создался файл рядом с игрой в котором записан код появления игрока. Что бы его открыть, при запуске нужной комнаты, ставим объект с кодом:

Код
if file_exists("save.save") // Если файл сохранения существует, то...
{
execute_file("save.save") //... загружает данные из него ([i]просто срабатывает код, который там прописан[/i])
}

Ну это так основа, если пригодиться, то развивай дальше эту идею.


МОИ ИГРЫ:
[2D] Агент Green [Action-platformer]
[2D] Оставшиеся: Мир После Нас [TDS]


Сообщение отредактировал UNIT02_GAMES_STUDIO - Понедельник, 14 Июня 2021, 16:12
kakaroshkiДата: Понедельник, 14 Июня 2021, 16:30 | Сообщение # 3
был не раз
Сейчас нет на сайте
Цитата UNIT02_GAMES_STUDIO ()
Все, по задумке создался файл рядом с игрой в котором записан код появления игрока. Что бы его открыть, при запуске нужной комнаты, ставим объект с кодом:
Спасибо за идею реализации) Но я сделал так что когда при запуске игры нажимается кнопочка продолжения, то крч она:
1) Загружает номер комнаты room = ini_read_real('global.objects','room_num',0);
2) Создает игрока с последними коордами в сохранении

Вот как то так. Спасибо за то что подал идею)
MagicHeroДата: Понедельник, 14 Июня 2021, 16:55 | Сообщение # 4
участник
Сейчас нет на сайте
В общем ты уже сам и ответил на свой вопрос что при загрузке нужно заново создавать все обьекты, которые были в момент сохранения. И потом передавать им сохраненные параметры. И чем дальше тем код сохранения и загрузки будет только разрастаться. Так появятся например враги или какие либо предметы в комнате и их всех нужно будет сохранять а при загрузке создавать и передавать значения. У меня например в игре файл сохранения имеет почти 2000 строк кода а файл загрузки больше 6000 строк кода. И я также сохраняю в ini это удобно когда что то добавляешь. А то что предложил UNIT02_GAMES_STUDIO не совсем будет подходить для больших сохранений т.к. во первых нужно соблюдать строгий порядок загрузки и сохранений а также чтобы например считать какой то один параметр придется считывать весь файл и по новой все сохранять, тогда как в ini файле можно изменить одно значения и не париться. Хотя текстовые файлы я тоже использую и записываю туда заранее известное и постоянное количество значений чтобы не захламлять ini файл тысячью значениями т.к. их удобно сохранять через for чем писать от руки сохранения этих пары тысяч значений, в основном это касается массивов.

Сообщение отредактировал MagicHero - Понедельник, 14 Июня 2021, 16:57
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг