Объект INI управляет простым текстовым файлом в формате .ini, в котором можно сохранять числовые и строковые параметры. Таким образом можно сделать сохранение в ваших играх. Clickteam Fusion 2.5 позволяет использовать несколько файлов .ini одновременно, каждый под своим именем, что позволяет использовать объект INI в качестве целой системы сохранения для вашей игры.
Помимо того, что объект INI сохраняет числа и строки, он еще позволяет сохранять и загружать положение объектов. Таким образом, INI может может сохранить все необходимое. Так как ini-файл может быть отредактирован вручную, то его можно заранее настроить и загружать необходимые параметры когда это нужно в игре.
Объект INI сохраняет и загружает значения из внешнего файла .ini.
Файлы ini разделены на части, называемые группами. Имена групп находятся в скобках, Clickteam Fusion 2.5 автоматически формирует эти строки.
Они выглядят как-то так:
[Это группа]
[Вот еще одна группа]
[Это третья группа]
Каждая группа имеет свой собственный набор элементов. Эти элементы могут быть числом (42), текстом (привет), или текущими координатами объекта на экране (320200). Содержание этих элементов можно загрузить из файла или пересохранить их в любом месте в вашей игре.
Вот некоторые типичные примеры групп и элементов, которые можно встретить в реальном приложении:
[Save game 1]
Killed monster = Yes
Found Treasure = No
[User Details]
Name = Tanya
E-mail address = mmfusion@clickteam.com
[application info]
directory = d:\Clickapp
difficulty level = easy
screen mode = high
Эти строки означают примерно следующее:
[Сохранить игру 1]
Убитого монстра = Да
Найдено сокровище = Нет
[Параметры игрока]
Имя = Таня
Адрес электронной почты = mmfusion@clickteam.com
[Информация о приложении]
Каталог = d:\Clickapp
Уровень сложности = легко
Качество графики = высокое
Ограничения
INI-файл не должен весить более 64 Кб, и каждый текстовый элемент не может превышать 1024 символа.
Свойства объекта INI
Ini file to use (Ini файл применяется для)
- Name. Введите имя файла .ini, чтобы создавать его. Если вы просто указываете имя файла (например, myfile.ini) без пути, файл ini будет создан либо в папке Windows, либо в папке в которой лежит само приложение, если отмечена галочка «Create INI file in Application Data folder», которая находится ниже. Если вы хотите, чтобы ваш файл был создан в определенном каталоге, вы должны указать полный путь к файлу (например C:\myfile.ini).
Примечание: На Windows Vista и Seven вы не можете создать файл в папке Windows, если включен UAC (см. ниже).
Create INI file in Application Data folder (создать ini-файл в папке с приложением)
Эта опция выбрана по умолчанию. Если вы просто укажете имя для ini-файла без пути:
- Если эта галочка не выбрана, файл ini будет создан в папке Windows. Это не будет работать под Windows Vista и Seven, если UAC включен. Вы должны выключить его для совместимости с приложением.
- Если эта галочка выбрана, файл ini будет создан в папке с самим приложением. Это будет работать на любом компьютере, даже на Windows Vista / Seven.
Если вы укажете полный путь к файлу ini, эта опция будет игнорироваться.
UAC — это технология контроля учетных записей Windows, она предотвращает несанкционированные изменения в системных файлах компьютера. Помните?, когда вы устанавливаете новую программу появляется окно «Эта программа пытается внести изменения» или бывают сообщения: Windows требует вашего разрешения на продолжение; Программа требует разрешения на продолжение работы; Неопознанная программа пытается получить доступ к этому компьютеру; Программа была заблокирована. Вот это и есть UAC.
Если вы все же решите отключить UAC, выполните следующие действия:
- Щелкните на значке Пуск и введите в строке Начать поиск команду msconfig.
- В открывшемся окне перейдите на вкладку Сервис, найдите в списке команду Отключить контроль учетных записей и щелкните на кнопке Запуск.
- Затем перезагрузите компьютер, и служба UAC будет отключена.
- Чтобы ее включить, достаточно на той же вкладке Сервис утилиты msconfig выбрать команду Включить контроль учетных записей и щелкнуть на кнопке Запуск, после чего перезагрузить компьютер.
Действия объекта INI
- Set current file
Устанавливает ini-файл, в который будут сохраняться данные. Замечание: если вы указываете файл для создания на панели свойств объекта INI, вы должны указать полный путь к файлу в качестве параметра. - Set current group
Устанавливает текущую группу в ini-файле. - Set current item
Устанавливает элемент-item для загрузки или перезаписи. - Set value
Сохраняет значение-число в установленную в данный момент группу и элемент-item. Это действие обычно используется после «Set current file», «Set current group» и «Set current item». - Set value (item)
Сохраняет число в данном элементе-item в выбранную в данный момент группу. Это действие обычно используется после действий «Set current file» и «Set current group». - Set value (group — item)
Сохраняет число в данном элементе в данной группе. Это действие обычно используется после действия «Set current file». - Set string
Сохраняет строковую переменную в ini-файл. Это действие обычно используется после действий «Set current file,» «Set current group», и «Set current item». - Set string (item)
Сохраняет строку в данном элементе item в выбранной в данный момент группе. Это действие обычно используется после действий «Set current file» и «Set current group». - Set string (group — item)
Сохраняет строку в данном элементе item данной группы. Это действие обычно используется после действия «Set current file». - Delete Item
Удаляет элемент item из выбранной в данный момент группы. Это действие обычно используется после действий «Set current file» и «Set current group». - Delete Item (group)
Удаляет элемент item из данной группы. Это действие обычно используется после действия «Set current file». - Delete Group
Удаляет всю группу. Примечание: это действие не работает при Обновлении! - Save position of object
Сохраняет положение объекта. Это действие будет полезно в игре, например, когда игрок хочет сохранить свое положение и продолжить играть с этого места в другое время. - Load position of object
Загружает сохраненное ранее положение объекта.
Значения INI Object для выражений
- Get Value
Функция Get Value загружает значение, хранящееся в объекте INI. Вы должны будете указать группу и элемент в первую очередь. - Get Value (item)
Функция Get Value (item) возвращает значение, хранящееся в данном элементе объекта INI. Вы должны будете указать группу в первую очередь. - Get Value (group — item)
Функция Get Value (group — item) возвращает значение, хранящееся в данном элементе в данной группе объекта INI. - Get String
Функция Get String возвращает текущую текстовую переменную в объекте INI. Сначала укажите группу и элемент. - Get String (item)
Функция Get String (item) извлекает строковую переменную, хранящейся в элементе объекта INI. В первую очередь укажите группу. - Get String (group — item)
Функция Get String (group — item) возвращает строку, хранящуюся в данном элементе в данной группе объекта INI.
Прочтите подробнее о том как сделать сохранение для игры.
Вовремя игры удаляются некоторые объекты. как сделать сохранение их удаления?
Трудно сказать, что Вам подойдёт. Опишите ситуацию подробнее. Можно просто:
* сохранить в переменную значение 3, когда кол-во экземпляров третьего объекта рано нулю,
* и если эта переменная равна 3-м
|_ удалять третий объект
Я так понимаю вам нужно, что бы они НЕ создавались при возвращении в кадр? Тогда можно сделать удаление при старте кадра. Или мудрить с тем как объекты создаются.
На одной сцене находится очень много движущихся объектов. У них общая группа (классификаторы). Во время игры некоторые уничтожаются. При нажатии на кнопку сохраняется позиция их группы . Проблема в том, что при загрузке позиции группы загружаются и позиции уничтоженных объектов (они почему-то создаются).
У меня вот такой вопрос: есть 3 сцены, в каждой из которых одинаковые объекты ( новые тоже присутствуют). Как сделать так, чтобы я мог переместить объекты в одной сцене (изменить их параметры, добавить событие), и чтобы эти изменения дублировались сразу и на все остальные сцены. Просто у меня их будет около 20, а каждое изменение вручную везде подгонять не очень удобно.
Используйте глобальные события
А где это, не подскажите?
Выберите само приложение в левой части (где список кадров) -> перейдите на вкладку Events в свойствах проекта (приложения) -> нажмите кнопку Edit в строке Global Events
Большое спасибо!
Что делать, если в объект Ini не хотят вписываться значения со счётчиков, которые содержат дроби?
То есть, я сделал, чтобы по окончанию сцены в объект Ini вписывалось число 1.14 (данные счётчика), а туда вписалось лишь «1», и, соответственно, при запуске сцены счетчик прочитал из Ini-файла число не 1.14, а просто 1.
Подскажите пожалуйста, как решить данную проблему?
Это я упустил в своей статье . Проблема заключается в том, что файл ini использует только целочисленные значения. Что бы обойти эту проблему вы можете сохранить десятичное значение в качестве строковый переменной в ини, а потом использовать преобразование строки в число (в редакторе выражений: объект Special -> Conversions -> Convert string to number ) для вычислений. Можно сразу записать это значение из строки в какую-то числовую переменную, что бы каждый раз не делать преобразование, а просто использовать переменную.
Здравствуйте!
К сожалению у меня нет объекта ini, а при попытке загрузить его,
мне пишут, что но уже установлен.
Подскажите пожалуйста, что делать?
Попробуйте так:
перейдите в папку C:\Program Files (x86)\Steam\steamapps\common\Clickteam Fusion 2.5\Extensions
откройте файл exts
и пропишите в него вот эти строчки:
[kcini.mfx]
cats=Storage