Суббота, 26.05.2012, 18:32


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

Меню сайта
Категории каталога
Создание игр [170]
Статьи об общих понятиях связанных с созданием игр
Движки и Гейммейкеры [85]
Статьи о программах для создания игр
Игры [39]
Статьи об играх, в том числе и сделанных на гейммейкерах
Софт [25]
Различные программы, в том числе в помощь игроделам
Разное [61]
Статьи, которые не вошли в определённые разделы
Наш опрос
Что в своих играх используете от стороннего производителя?
Всего ответов: 5354
Главная » Статьи » Движки и Гейммейкеры

Работа с 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.02.2011)
Просмотров: 2498 | Рейтинг: 4.4/5
Теги: Урок, .ini, GM8, ini, GM, Game Maker, GML, программирование, INI файл, Game Maker 8
Дополнительные опции:
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:

Игровые объявления и предложения:
Если вас заинтересовал материал «Работа с INI файлами в Game Maker 8», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела. Предлагаются такие схожие материалы: Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями. Для этого воспользуйтесь предлагаемой ниже кнопкой:
Всего комментариев: 9
+3  
8 Stalker_Shooter   (18.07.2011 18:46)
Классная статья. Только, код помещай в специальный тег. Что бы читабельность улучшить! А так молодец!

0  
9 GameMix   (11.08.2011 10:10)
Исправил оформление happy .

+2  
7 Transced   (16.07.2011 13:45)
Все понятно изложено. cool
Молодец!

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

+1  
6 GameMix   (22.02.2011 09:39)
Чтобы перевести текст на следующую строку, перед началом новой строки ставится символ #.

+1  
3 vetolo   (14.02.2011 19:00)
а можешь написать урок о том как сохранять игру в ини?

+1  
4 GameMix   (14.02.2011 19:04)
Окей, постараюсь.

+2  
1 vetolo   (14.02.2011 18:55)
хороший урок)

+1  
2 GameMix   (14.02.2011 18:58)
Спасибо)

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Ссылки по теме
Поиск
10 случайных движков
Retribution Engine
GameDirector
Genesis3D
ezRPG
Novashell
Odamex
Ren'Py
M.U.G.E.N
Mirage RPG Creator
Aether3D
Друзья сайта
Игровой форум GFAQ.ru Перевод консольных игр Разработка игр в СНГ Loadka.ru – загрузка файлов Игорный бизнес в России Реклама и заработок
Все права сохранены. GcUp.ru © 2008-2012 Рейтинг