Menu

Как сделать сохранение игры. Использование ini

Привет. Эта статья о том, как сделать сохранение для игр на Clickteam Fusion 2.5.

Для сохранения нужно использовать отдельный файл в формате .ini и расширение — объект INI Ini он работает во всех экспортах. Метод описанный в этой статье позволит сохранять игры для всех платформ.

Для приложений Windows вам нужно будет хранить отдельный файл .ini и ссылаться на него в приложении напрямую. При чем приложение само может создавать этот файл, и вам не придется распространять вашу игру под Windows вместе с ini-файлом.

Во всех других платформах: Flash, IOS, Android, XNA и HTML5 ini-файл встраивается в само приложение, и для экспортеров создать сохранение еще проще даже, чем для Windows. Но давайте пойдем по порядку, что бы полностью разобраться с этим вопросом.

Для начала сделаем простую сохранялку для Windows и вручную создадим файл .ini.

Сохранение делается в 3 шага:

  • Создать файл .ini
  • Подключить файл .ini
  • Использовать файл .ini

Создание файла .ini

Создать файл ini очень просто.

  • Откройте блокнот
  • Выберете Файл -> Сохранить как
  • Назовите файл английскими буквами и в конце поставьте .ini

Подключение файла ini

Для начала нужно поместить в кадр объект INI Ini.

Теперь в коде привязываем этот файл. В событии Start of frame, создаете действие для Ini -> Set current file  и в кавычках прописываем полный путь к файлу, например если ваш файл храниться в корне диска ‘C’, то вы должны написать «C:\save.ini».

Установка ini файла

Итак, файл подключили теперь давайте сохранять игру.

Как сохранять игру в файл ini

У вас есть 3 варианта того, что вы можете сохранять:

  • Числовые значения
  • Строковые переменные
  • Позиции объектов

Сохранение числовых переменных

В качестве примера можно использовать счетчик Counter. По событию клавиши ‘Пробел’ счетчик будет увеличиваться на 1.

ini прибавить счетчик

Теперь сделаем сохранение счетчика. В событии клавиши ‘S'(типа сохранить) создаем действие — сохранить значение: Ini -> Set Value

ini Set value

И в калькуляторе устанавливаем значение счетчика: Counter -> Current Value

set value to counter

Далее создаем событие клавиши ‘Z'(типа загрузка) и в нем будем загружать значение счетчика. Теперь это будет уже действием счетчика, а не INI. Выбираете Counter -> Set counter и в калькуляторе выбираете Ini -> Get value.

Загрузка Get value

То есть, вы выгружаете сохраненное значение из файла .ini в соответствующий параметр — это может быть значение счетчика, переменная объекта или значение какого-то свойства типа скорости и т.п., да что угодно. Главное понять принцип.

Теперь запустите игру; понажимайте пробел, что бы накрутить счетчик; потом нажмите ‘S’ что бы сохранить; далее снова пробел несколько раз и нажмите ‘Z’. Теперь мы загружаем в счетчик сохраненное значение.

НО, мы сохранили всего лишь одно значение и навряд ли в вашей игре только один параметр, который надо сохранять. Что бы сохранять много всяких значений существует item. То есть, каждому параметру вы даете отдельное имя и сохраняете нужные вам значения под своим именем.

В событии клавиши ‘S’ вы уже ставите Ini -> Set value (item) и в первом калькуляторе вводите имя, а во втором калькуляторе значение. Я назову его number.

Set value (item)

Enter Item Name

Enter Value

Затем в событии загрузки (клавиша Z) устанавливаем счетчик в значение Ini -> Get value (item), там нужно будет вписать item.

Get value (item)

Таких значений с именами можно создать сколько угодно и сохранить все, что нужно.

Есть еще один метод Set value (group — item) — сохранять переменные в группе. Этот метод нужен если вы собираетесь сохранять одни и те же переменные в разных вариантах, например, что бы создать несколько слотов памяти. Либо вы можете использовать группы, что бы логически разделить данные, которые хотите записывать, например одна группа содержит количество разных патронов для одного оружия, и другая для другого оружия.

Соответственно выбираете Set value (group — item) в событии нажатия ‘S’. И вводите имя группы в первом калькуляторе, имя переменной во втором и само значение в третьем. Я назвал свою группу переменных «gruppa».

Set value (group - item)

Enter Group Name

Enter Item Name

Enter Value

В событии нажатия ‘Z’ устанавливаете счетчик в INI -> Get value (group — item), ну, и аналогично.

Get value (group - item)

Что бы несколько переменных входили в одну группу пишите для них одинаковое имя группы.

Группа может содержать сколько угодно переменных и вы можете создавать сколько угодно групп.

Сохранение строковых значений

Думаю, что нет смысла подробно описывать сохранение строк. Действия Set string; Set string (item) и Set string (group — item) в точности повторяют логику с числовыми значениями с той лишь разницей, что сохраняется текст.

Сохранение позиций объектов

Тут всё ещё проще. Когда вам нужно сохранить положение объекта, в нужном событии установите действие INI -> Save position of object и выберите нужный объект.

Save position object

А когда нужно загрузить, создайте INI -> Load position of object в нужном событии и выберите объект.

Load position object

Если вы хотите сохранить позиции нескольких объектов, то лучше всего дать им общую группу (возможно, вы сделаете отдельную группу специально для сохранения), а затем указать эту группу в действиях Save position of object и Load position of object.

Save and Load position Group Object

Вот и всё, как вы могли убедиться, объект INI Ini имеет достаточно функций, что бы сделать полное сохранение игры и сохранить все, что нужно.

Записи в файле ini

Откройте файл save.ini после сохранения. Вы увидите строки типа этих:

[]
pos.Ball 1=408,309
=Hello !!!
pos.Ball 2=426,279
pos.Ball 3=496,379
pos.Ball 4=463,340
pos.Ball 5=405,388
pos.Ball 6=446,310
[gruppa]
number1=2
number2=1

Несложно понять, какие параметры здесь отражены. И исходя из этого вы можете менять значения прямо в файле, а потом загружать их в своей игре в нужный момент.

Итак, мы разобрали процесс сохранения, теперь давайте научим Windows-приложение самостоятельно создавать для себя ini-файл.

Создание файла ini через приложение Windows

Что бы файл ini создавался сам, в свойствах объекта INI укажите имя файла. И все.

INI Name

Вы можете создать файл:

  • В системной папке Windows на системном диске
    Для этого просто укажите имя файла без пути, например, save.ini. При этом должна быть НЕ выбрана галочка Create INI file in Application Data folder. Это не будет работать под Windows Vista и Seven, если UAC включен. Вы должны выключить его для совместимости с приложением. Что бы узнать больше перейдите в описание объекта INI.
  • В той же папке где находится само приложение
    Для этого так же нужно указать имя без пути, но отметить галочку Create INI file in Application Data folder. Это будет работать на любом компьютере, даже на Windows Vista / Seven.
  • Там где вы укажите
    Если хотите создавать файл в определенном месте, укажите полный путь к файлу, например C:\save.ini. Если при этом выбрана опция Create INI file in Application Data folder, то она будет просто игнорироваться.

Выберете способ, который вам подходит и ваше приложения .exe само будет создавать себе ini-файл. Все просто!

Теперь давайте разберем как сделать сохранение для других платформ: Android, HTML5, iOS, Flash, XNA.

Сохранение игры в Android, HTML5, iOS, XNA и Flash

В экспортах для смартфонов и браузеров вы не можете использовать сторонний файл, поэтому здесь ini ‘зашивается’ в само приложение. Для этого нажмите эту кнопку Кнопка которая открывает панель Data Elements на панели управления и перейдите на вкладку Binary Data -> нажмите Add и выберите заранее созданный файл ini.

Data Elements binary data

И впишите тот же путь в коде в действии INI -> Set current file

Установка ini файла

 

И всё! Теперь просто экспортируйте конечный файл приложения и проверяйте как работает ваше сохранение.

Это действительно так просто. Этот метод будет работать для всех экспортеров.

Не забывайте, что, пока вы не создадите окончательное приложение, оно всегда будет ссылаться на локальные файлы. Только после того как вы экспортируете финальный проект, Fusion собирает все эти файлы в одном приложении.

Скачать исходный файл

 

Я надеюсь, вам понравилась эта статья и эта информация была полезной для вас.

Привет. Эта статья о том, как сделать сохранение для игр на Clickteam Fusion 2.5. Для сохранения нужно использовать отдельный файл в формате .ini и расширение - объект INI  он работает во всех экспортах. Метод описанный в этой статье позволит сохранять игры для всех платформ. Для приложений Windows вам нужно будет хранить отдельный файл .ini и ссылаться на него в приложении напрямую. При чем приложение само может создавать этот файл, и вам не придется распространять вашу игру под Windows вместе с ini-файлом. Во всех других платформах: Flash, IOS, Android, XNA и HTML5 ini-файл встраивается в само приложение, и для экспортеров создать…

10

Рейтинг: 5 ( 1 голосов)

    Рейтинг: 4,89 ( голосов - 18 )
Загрузка...
Комментариев: 14
  1. Загадка:

    Помогите мне с ини!!!!!!!!!!!!!!!!

  2. Salafim:

    Как сделать сохранение сразу нескольких сцен на андроиде

    • GQ GQ:

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

      • Стас:

        Помогите пожалуйста! Я хочу сделать сохранение позиции объекта противника. У него движение Прыгающий мяч. Я пробовал сделать но у меня при загрузке все враги появляются в одном месте. Что делать?

        • GQ GQ:

          Вам нужно сохранять позиции экземпляров объекта индивидуально, для этого используйте цикл loop по объекту

  3. Сандр:

    Не сохраняет ( Не успел закончить работу, надо сохранить а потом снова открыть и работать дальше. Но в сохранённом файле заново открывается стартовая страница. Что делать?

  4. Ден:

    А как сделать сохранение фрейма?

  5. ErGenos:

    Либо я криворукий, либо у меня это не пашет. Свяжитесь со мной и помогите:bendermonster(Skype)

  6. Luce Dove:

    Спасибо большое)! :wink:

Вы можете изменить изображение аватара на сервисе Gravatar

Добавить комментарий

Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.

:wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)

Вступай в группу!