Четверг, 21 Ноября 2024, 13:30

Приветствую Вас Гость

Меню сайта
Категории каталога
Создание игр [358]
Статьи об общих понятиях связанных с созданием игр.
Программирование [83]
Гайды по программированию на разных ЯП.
Движки и Гейммейкеры [147]
Статьи о программах для создания игр, уроки и описания.
Софт [43]
Различные программы, в том числе в помощь игроделам.
2D-графика [14]
Уроки по рисованию, растр, пиксель-арт, создание спрайтов и пр.
3D-графика [17]
Уроки по моделированию, ландшафт, модели, текстурирование и пр.
Моддинг игр [5]
Модификация компьютерных игр, создание дополнений, перевод, хакинг.
Игры [167]
Статьи об играх, в том числе и сделанных на гейммейкерах.
Разное [132]
Статьи, которые не вошли в определённые разделы.
Наш опрос
Какие жанры компьютерных игр вы предпочитаете?
Всего ответов: 2054
Главная » Статьи » Движки и Гейммейкеры

Работа с 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 название файла было указано некорректно, то будет создан другой.

Вот пример, созданный по данному уроку: Скачать.
Категория: Движки и Гейммейкеры | Добавил: GameMix (14 Февраля 2011)
Просмотров: 18372 | Комментарии: 10 | Рейтинг: 4.5/8 |
Теги: Урок, .ini, GM8, ini, GM, Game Maker, GML, программирование, INI файл, Game Maker 8
Дополнительные опции:
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:

Игровые объявления и предложения:
Если вас заинтересовал материал «Работа с INI файлами в Game Maker 8», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела. Предлагаются такие схожие материалы: Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями.

Всего комментариев: 10
+0-
10 nenit   (29 Ноября 2014 14:52) [Материал]
nenitа как проверять на наличие файла cry
типо когда нету спрашивает новый пароль
а когда есть просто загружает?
чтоб каждый рас не спашивало dry

+4-
8 Stalker_Shooter   (18 Июля 2011 18:46) [Материал]
Stalker_ShooterКлассная статья. Только, код помещай в специальный тег. Что бы читабельность улучшить! А так молодец!

+2-
9 GameMix   (11 Августа 2011 10:10) [Материал]
GameMixИсправил оформление happy .

+3-
7 Transced   (16 Июля 2011 13:45) [Материал]
TranscedВсе понятно изложено. cool
Молодец!

+3-
5 URGINSAN   (19 Февраля 2011 23:32) [Материал]
URGINSANаТнОтХоАн, можешь помочь? В общем я вывожу текст из файла на экран, а надпись получается длинная, так вот, как сделать, чтобы можно было часть надписи перевести на след. строку?

+2-
6 GameMix   (22 Февраля 2011 09:39) [Материал]
GameMixЧтобы перевести текст на следующую строку, перед началом новой строки ставится символ #.

+-1-
3 vetolo   (14 Февраля 2011 19:00) [Материал]
vetoloа можешь написать урок о том как сохранять игру в ини?

+2-
4 GameMix   (14 Февраля 2011 19:04) [Материал]
GameMixОкей, постараюсь.

+3-
1 vetolo   (14 Февраля 2011 18:55) [Материал]
vetoloхороший урок)

+2-
2 GameMix   (14 Февраля 2011 18:58) [Материал]
GameMixСпасибо)

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск по сайту
10 случ. движков
  • iFVN
  • Orx
  • Drag[en]gine
  • Ursina
  • LuxRender
  • HÖVE
  • DzQ
  • Ethanon Engine
  • Evergine
  • RPG Maker MZ
  • Друзья сайта
    Игровой форум GFAQ.ru Перевод консольных игр
    Все права сохранены. GcUp.ru © 2008-2024 Рейтинг