Главная » Статьи » Game maker [ Добавить статью ]

Работа с INI файлами в Game Maker 8
Здравствуйте. На этом уроке я научу вас использовать INI файл в ваших играх.

INI файл – самое простое и удобное средство сохранения настроек игры. Благодаря этому средству, вы сможете создать полноценную систему опций. Не стоит забывать, что если вы используете INI, то необязательно файл должен иметь расширение *.ini. Оно может быть заменено любым другим расширением.

Итак, начнем. Мы создадим INI файл для сохранения настроек экрана. Также этот файл будет содержать текст, который потом будет отображён на экране. Для начала, в блокноте создаём текстовый файл и пишем:

Code
[Screen]
DepthColor=16
FullScreen=0
Text=START


Давайте разберёмся в данных записях. [Screen] – это название секции (раздела). DepthColor – это ключ (бывает двух типов: строка и переменная), отвечающий за глубину цвета: 32 бита или 64. FullScreen=0 – это ключ, указывающий, полноэкранный режим игры или оконный (1 или 0). Text - ключ, содержащий отображаемый в игре текст.

Теперь создаем папку для игры и сохраняем в неё файл с расширением *.cfg. Назовём его options. Полное название файла будет выглядеть так: options.cfg.

Открываем Game Maker и создаем объект cfg_init. В событии «Старт игры» (Game Start) пишем gml скрипт:

Code
ini_open('options.cfg');
display_set_colordepth( ini_read_real('Screen', 'DepthColor', 16));
window_set_fullscreen(ini_read_real('Screen', 'FullScreen', 0));
Gtext = ini_read_string('Screen','Text','INI');
ini_close()


Объясняю содержание этих строк:

  • первая строка просто открывает INI файл с указанным именем.
  • вторая – читает ключ «DepthColor» из секции «Screen» как переменную и устанавливает значение глубины цвета – 16 бит или 32 бита. По умолчанию – 16 бит.
  • третья – читает ключ «FullScreen» из той же секции как переменную и устанавливает значение - полноэкранный режим или оконный. По умолчанию – 0 (оконный режим).
  • четвертая – считывает текст из ключа «Text», находящегося в секции «Screen, и записывает его в переменную «Gtext». В данном случае, если ключ «Text» в секции «Screen» отсутствует, тогда он будет создан со значением «INI».
  • пятая – закрывает INI файл, освобождая память. Используется, когда все операции с INI завершены.


Также, например, нужно отобразить текст из INI файла на экране. Тогда добавляем событие рисования (Draw) следующую функцию:

Code
draw_text(64,200,Gtext);


Эта функция считывает текст из переменной «Gtext» и рисует его в указанных координатах.
Сделаем так, чтобы игрок смог изменить настройки экрана в процессе игры.
Режим экрана будет изменяться с помощью стрелок курсора «вверх» и «вниз». Глубина цвета будет регулироваться с помощью стрелок курсора «влево» и «вправо»:

В событии нажатия клавиши «вверх» пишем:
Code
ini_open('options.cfg');
if ini_read_real('Screen', 'FullScreen, 0) = 0
{
ini_write_real('Screen', 'FullScreen', 1);
window_set_fullscreen(1);
ini_close()
}


В событии нажатия клавиши «вниз» пишем:
Code
ini_open('options.cfg');
if ini_read_real('Screen', 'FullScreen', 0) = 1
{
ini_write_real('Screen', 'FullScreen', 0);
window_set_fullscreen(0);
ini_close()
}


В событии нажатия клавиши «влево» пишем:
Code
ini_open('options.cfg');
if ini_read_real('Screen', 'DepthColor', 0) = 32
{
ini_write_real('Screen', 'DepthColor', 16);
display_set_colordepth (16);
ini_close()
}


В событии нажатия клавиши «вправо» пишем:
Code
ini_open('options.cfg');
if ini_read_real('Screen', 'DepthColor', 0) = 16
{
ini_write_real('Screen', 'DepthColor', 32);
display_set_colordepth (32);
ini_close()
}


Здесь при нажатии клавиш курсора, открывается INI файл, выполняется проверка, и если условие - истина, тогда записываются указанные значения режима экрана или глубины экрана в ключи.

Также, существует еще несколько функций для работы с INI файлом:

  • ini_key_exists('Settings','Game') - если ключ с именем «Game» существует в секции «Settings», тогда функция возвращает истину (1).
  • ini_section_exists('Settings') – если секция с именем «Settings», то функция – истина.
  • ini_key_delete('Settings','Game') - удаляет ключ «Game» из секции «Settings».
  • ini_section_delete('Settings') - удаляет секцию «Settings».


Функции удаления секций и ключей полезны при создании редактора карт в Game Maker. Например, если ключи в секциях содержат координаты объектов карты, и требуется создать новую карту.

Примечание: Если при работе с INI название файла было указано некорректно, то будет создан другой.

Вот пример, созданный по данному уроку: Скачать.
Категория: Game maker | Добавил: АДМИН (2012/Июн/26) | Автор: GameMix
Просмотров: 2728 | Комментарии: 2 | Теги: .ini, урок, GM8, ini, GM, Game Maker, GML, программирование, INI файл, Game Maker 8 | Рейтинг: 5.0/2
Всего комментариев: 2
№2 АДМИН написал: 2013/Янв/05 в 22:38
АДМИН
Я щас сам сижу и разбираюсь с этим cry
№1 Алексей написал: 2013/Янв/01 в 15:18
Люди нужна помощь!!! Я сделал две кнопки: открыть и создать. При нажатии на кнопку создается файл в определенной директории, при нажатии на кнопку открыть, открывается этот файл но при выходе из редактирования он пишет мол сохранять, или нет. Я нажимаю Да, сохранить, и он пишет "Не удается создать файл, проверьте правильность пути"
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]