Перейти к основному содержимому

17.4. Как написать действие, которое при каждом клике сохраняло бы игру в файлы "1.sav" и "2.sav" поочерёдно?

В: Как написать действие, которое при каждом клике сохраняло бы игру в файлы "1.sav" и "2.sav" поочерёдно?

О: Это решается довольно просто, с помощью переменной-счётчика:

! где-то заранее устанавливаем переменную счётчик

savecount=1

! в нужном месте пишем действие

act "Сохранить":
if savecount=1:
savecount=2
savegame "1.sav"
else
savecount=1
savegame "2.sav"
end
end

В данном случае в файле сохранения "1.sav" значение переменной-счётчика будет равно 2, а в файле "2.sav" — 1. Это позволит при загрузке игры из одного файла нажатием действия "Сохранить" записать сохранение в следующий файл.

Например, мы нажали действие "Сохранить" и сохранили игру в файл "1.sav", после чего нажатие на действие "Сохранить" должно записывать состояние в файл "2.sav". Не важно, нажмём мы действие ещё раз, или нет, при загрузке состояния из файла "1.sav" мы снова получим ситуацию, когда действие "Сохранить" должно будет записать очередное состояние в файл "2.sav".

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

act "Загрузить последнее":
if savecount=1:
opengame "2.sav"
else
opengame "1.sav"
end
end

В этом случае, если мы сохранили состояние в файл "1.sav", то даже если мы загрузим состояние из этого файла, в следующий раз при выборе "Загрузить последнее" мы вновь загрузим состояние из "1.sav".

Однако если нам нужно загружать состояния из предыдущего файла, нужно создать такое действие:

act "Загрузить предыдущее":
opengame "<<savecount>>.save"
end