Расскажу про ini файлы в гейм мейкер студио (GameMaker Studio) и про сохранение данных во внешних файлах. Если вы хотите узнать про создание игры с нуля в GMS, про .ini файлы вам тоже следует знать. Тут речь пойдёт не только про гейм мейкер, но и вообще про ини файлы в принципе. "Ини" (.ini) - это файл конфигурации в Windows, который присутствует с первых версий.
Ini file - это обычный и простой текстовой файл с расширением .ini. Эти файлы можно просматривать и редактировать с помощью простого текстового редактора, даже через блокнот.
Ini file - это обычный и простой текстовой файл с расширением .ini. Эти файлы можно просматривать и редактировать с помощью простого текстового редактора, даже через блокнот.
Как рисовал тёлочку на картинке читайте тут: Рисунок девушки #11
В играх или приложениях (программах) у вас может возникнуть необходимость сохранить какие-то данные (цифры или слова - строчки, strings). В Game Maker Studio, да и не только там, для этого могут быть использованы внешние ини файлы.
Выглядеть всё это будет просто как надписи, примерно вот так:
Тут есть 3 вещи:
Выглядеть всё это будет просто как надписи, примерно вот так:
Пример ini файла, можно даже сказать - простая база данных
Тут есть 3 вещи:
- Секция. То, что в квадратных скобках. Это как-бы раздел, просто чтобы было удобнее делить данные по группам.
- Ключ. Просто то, что мы записываем в форме текста. Например для имени (Andrew) в файле ключом будет являться - name
- Данные. То, что мы записываем. Это либо цифра (real), либо строка - текст (string).
Зная это, всё становится относительно понятно.
В гейм мейкер студио есть несколько функций для ини файлов, всё это есть в справке, но нам понадобятся сейчас всего несколько.
- ini_open
- ini_close
- ini_write_real
- ini_write_string
- ini_read_real
- ini_read_string
- ini_key_exists
- ini_section_exists
- ini_key_delete
- ini_section_delete
- ini_open_from_string
Перед тем, как работать с ini файлом, нам нужно его открыть (ini_open), а когда мы всё туда уже записали (или прочитали), тогда его нужно закрыть (ini_close).
Вот пример кода, где мы записываем в ини файл значение золота у героя:
ini_open("save.ini" );
ini_write_real( 'HERO STATS', 'Gold', global.gold );
ini_close();
При открытии пишем название файла, если такого файла не существует, он будет создан. В данном случае название файла - save.ini. В простых играх одного ини файла вам хватит, но иногда нужно создавать несколько и хранить в каждом что-то отдельно.
Что этот код запишет в наш блокнот (ini file):
[HERO STATS]
Gold = 500
Если у нас золота было 500, понятное дело.
В одном из своих постов (С чего начать разработку игр) я рассказывал как я начинал делать игры и там я говорил что один из этапов в моём обучение был - создание модификаций к игре "Виктория". В той игре чуть-ли не все файлы были просто обычными текстовыми файлами, которые мог редактировать кто угодно.
С этими файлами можно дать возможность игрокам писать моды для вашей игры. Просто сохраните основные параметры в форме ini файла. Например, все параметры оружия для моей игры Lonely Dude. Напоминаю что у меня выложен исходник этой игры вот тут, где уже есть все эти механики. Можете просто открыть и посмотреть как я там сделал сохранение через ini файлы.
Тогда любой игрок сможет это редактировать просто открывая текстовые файлы и меняя параметры как он хочет.
Через них можно записать вообще чуть-ли не всё, начиная от поведения врагов (AI), заканчивая... Практически чем угодно, что можно быть записано в форме числа или строчки.
В ини файлы мы записываем данные (write - писать), либо это число / цифра (ini_write_real), люди это текст (ini_write_string).
Пример кода записи я показал, а как ини файлы читать (read)?
Вот пример кода:
if file_exists("save.ini") // Проверяет, существует-ли этот файл{
ini_open("save.ini" );
global.gold = ini_read_real( 'HERO STATS', 'Gold',0);
ini_close();
}
Тут мы считываем значение (ключ) из секции - стата героя (HERO STATS), но не просто считываем, мы приравниваем текущую переменную золота у героя (global.gold) к данным из вот этого текстового ини файла. Если у нас в том файле было значение 500, то и тут золото станет равным 500. Всё просто. Это и есть сохранение.
Единственная разница тут это проверка - существует-ли файл. Ну и последнее - 0
0 это там у нас значение по умолчанию. Почти всегда можете оставлять там 0.
На самом деле вот и всё! С помощью таких нехитрых штук вы сможете в Game Maker Studio сохранять любые данные во внешний файл и потом их считывать. Так-же не забывайте что в гейм мейкере есть и стандартные функции сохранения (game_save(), game_load()), но они не всегда вам подойдут, особенно для более сложных игр.
Как всегда, сделал видео на своём ютуб канале (11 минут). там всё более наглядно.