Экранные заставки, результаты и другое
В этой главе мы опишем множество функций, которые могут быть
использоваться для отображения экранных заставок вместе с видео, изображениями
и т.п. для того, чтобы отображать сообщения, задавать игроку вопросы, и показывать
список результатов.
Информация об экранных заставках и всплывающих сообщениях может быть
обнаружена на следующих страницах:
Зкранные Заставки
Вслывающие Сообщения и Вопросы
Список Результатов
Экранные заставки
Это функциональное назначение доступно только в Pro
издании Game Maker.
Многие игры имеют так называемые экранные заставки. Такие заставки могут
отображать: видео, изображения или текст. Часто они используются в начале игры
(как вступление), в начале уровня или в конце игры (например информация об
авторе). В Game Maker подобные заставки с текстом, изображениями или
видео можно показать в любой момент в течение всей игры.
По умолчанию экранные заставки показываются в игровом окне, но также
возможно показать их в отдельном окне. Игра прерывается, пока показана экранная
заставка. Игрок может вернуться к игре, нажав клавишу Esc или кликнув мышкой по
окну заставки. (Эти настройки могут быть изменены; см. ниже.)
Следующие функции могут быть использованы для отображения экранных заставок:
splash_show_video(fname,loop)
Отображает видео экранную заставку. fname
- название видео файла. В зависимости от установленных драйверов поддерживаются
видео файлы. Вы можете использовать .avi, .mpg, and .wmv файлы, но избегайте
специальных кодеков. Лучше всего помещайте этот файл в папку с игрой или ее
подпапку. loop - указывает,
будет ли повторяться видео показ.
splash_show_text(fname,delay)
Отображает текстовую экранную заставку. fname
- название текстового файла. Вы можете использовать стандартные текстовые файлы
(.txt) или файлы формата RTF (.rtf). Файлы формата RTF могут содержать
изображения. delay - задержка в
миллисекундах перед возвратом в игру. Используйте значение 0, чтобы вернуться в
игру только после нажатия клавиши Esc или клика мышкой по окну заставки.
splash_show_image(fname,delay)
Отображает графическую экранную заставку. fname
- название графического файла. Поддерживаются многие графические форматы
(например .bmp, .jpg, .tif, and .wmf), но не анимация. delay - задержка в миллисекундах перед
возвратом в игру.
Вы можете изменить способы отображения экранных заставок, используя
приведенные ниже функции:
splash_set_main(main)
Показывает, будет ли экранная заставка показана в главном окне игры (true, по
умолчанию) или в отдельном окне (false).
splash_set_scale(scale)
Устанавливает масштаб отображения видео или графической заставки. При
использовании значения 0, окно игры будет полностью заполнено заставкой (по
умолчанию).
splash_set_cursor(vis)
Указывает, будет ли курсор виден на экранной заставке. По умолчанию он виден.
Для видео заставок курсор не может быть выключен.
splash_set_color(col)
Устанавливает цвет области вокруг рисунка или видео ролика.
splash_set_caption(cap)
Устанавливает заголовок для окна экранной заставки. Возможно только при
использовании отдельного окна для экранной заставки. По умолчанию пустая строка.
splash_set_fullscreen(full)
Указывает, использовать ли полноэкранное окно или нет. Возможно только при
использовании отдельного окна для экранной заставки. По умолчанию нормальное
окно.
splash_set_border(border)
Указывает, должно ли окно иметь границу. Возможно только при использовании
отдельного окна для экранной заставки. По умолчанию граница есть.
splash_set_size(w,h)
Устанавливает размер окна экранной заставки. Возможно только при использовании
отдельного окна для экранной заставки. По умолчанию 640x480.
splash_set_adapt(adapt)
Указывает, должен ли размер окна быть такого же размера, как размер видео
ролика или изображения. Возможно только при использовании отдельного окна для
экранной заставки. По умолчанию такого же размера.
splash_set_top(top) Указывает,
должно ли окно оставаться поверх других окон. Возможно только при использовании
отдельного окна для экранной заставки. По умолчанию останется поверх других.
splash_set_interrupt(interrupt)
Указывает, должна ли игра быть прервана при показе окна экранной заставки.
Возможно только при использовании отдельного окна для экранной заставки. По
умолчанию игра прерывается.
splash_set_stop_key(stop)
Указывает, выключается ли экранная заставка при нажатии на клавишу Esc. По
умолчанию выключается. splash_set_stop_mouse(stop)
Указывает, выключается ли экранная заставка при щелчке мышью по экранной
заставке. По умолчанию выключается.
Есть один специфический тип экранной заставки, которая является игровой
информацией, которую пользователь может ввести в Game Maker. Вы можете
отобразить ее, используя следующую функцию. Вы также можете загрузить отдельный
файл с информацией. Это связано с отображением текстового экрана заставки,
показывающей определенную игровую информацию. Они показываются в различных
окнах, так что возможно показать и информацию игры и экран заставки
одновременно. Эти функции работают и в Lite Издании.
show_info()
Показывает окно игровой информации.
load_info(fname)
Загружает игровую информацию из файла с именем fname.
Он может быть файлом формата RTF (.rtf). Это позволяет показывать различные
файлы справки в разные моменты времени. Обратите внимание, что в отличии от
экранной заставки, этот RTF файл не должен содержать изображения.
Всплывающие сообщения и вопросы
Существует множество различных функций, предназначенных для
вывода на экран сообщений, вопросов, меню с вариантами или диалогов, в которых
играющий может вводить число, строку, либо указать цвет или имя файла:
show_message(str)
Отображает диалоговое окно со строкой в виде сообщения.
show_message_ext(str,but1,but2,but3)
Отображает диалоговое окно со строкой в виде сообщения и до трёх кнопок. But1,
but2 и but3 содержат текст кнопки. Пустая строка означает, что кнопка не
отображается. Функция возвращает номер нажатой кнопки (0, если пользователь
нажимает клавишу ).
show_question(str)
Отображает вопрос; возвращает истину, когда игрок выбирает Да, и ложь - при
ином варианте.
get_integer(str,def)
Спрашивает у игрока номер в диалоговом окне. str
- сообщение. def - отображаемый
по умолчанию номер.
get_string(str,def)
Спрашивает у игрока строку в диалоговом окне. str
- сообщение. def - отображаемое
по умолчанию значение.
message_background(back)
Устанавливает фоновое изображение для всплывающего окна любой из функций
приведённых выше. back - должен
быть один из фонов, определённых в игре. Задняя сторона изображения сообщения
может быть частично прозрачна (только для Windows 2000 или позже).
message_alpha(alpha)
Устанавливает прозрачность для управляющего окна любой из перечисленных выше
функций. Значение alpha должно
быть между 0 (полная подсветка снизу) и 1 (не подсвечивается снизу) (только для
Windows 2000 или позже).
message_button(spr)
Устанавливает спрайт, используемый для кнопок во всплывающем окне. spr - должен быть спрайт, состоящий из
трёх изображений, первое изображение содержит кнопку, когда та не нажата и мышь
находится в стороне, второе содержит изображение, когда мышь находится поверх
кнопки, но та ещё не нажата и третье изображение - когда нажата кнопка.
message_text_font(name,size,color,style)
Устанавливает шрифт для текста во всплывающем окне. (Это обычный шрифт Windows,
не один из шрифтовых ресурсов в Вашей игре!) style
- указывает стиль шрифта (0=обычный, 1=жирный, 2=курсив и 3=жирный-курсив).
message_button_font(name,size,color,style)
Устанавливает шрифт для кнопок во всплывающем окне. style - указывает стиль шрифта (0=обычный, 1=жирный,
2=курсив и 3=жирный-курсив).
message_input_font(name,size,color,style)
Устанавливает шрифт для поля ввода во всплывающем окне. style - указывает стиль шрифта (0=обычный,
1=жирный, 2=курсив и 3=жирный-курсив).
message_mouse_color(col)
Устанавливает цвет шрифта для кнопок во всплывающем окне, когда мышь
оказывается над ними.
message_input_color(col)
Устанавливает цвет фона для поля ввода, во всплывающем окне.
message_caption(show,str)
Устанавливает заголовок для всплывающего окна. show
- указывает, нужно ли отображать границу (1) или нет (0), и str - указывает заголовок, если граница
отображается.
message_position(x,y) Устанавливает
позицию всплывающего окна на экране. Используйте -1, -1 позволяет центрировать
окно.
message_size(w,h)
Устанавливает размер управляющего окна на экране. Если Вы выбираете -1 для
ширины используемого изображения. Если Вы выбираете -1 для высоты, то высота
будет вычислена находящимися линиями в сообщении.
show_menu(str,def)
Отображает всплывающее меню. str
- указывает текст меню. Он состоит из различных пунктов меню с вертикальной
областью между ними. Например, str
= 'menu0|menu1|menu2'. Когда выбирается первый пункт, возвращает 0 и т.д. Когда
игрок выбирает no item (не выбран ни один пункт), то возвращает значение
по умолчанию def)
show_menu_pos(x,y,str,def)
Показывает всплывающее меню как в предшествующей функции, но в позиции x,y на
экране.
get_color(defcol)
Запрашивает у игрока цвет. defcol
- цвет по умолчанию. Если игрок нажимает Cancel, то возвращает значение -1.
get_open_filename(filter,fname)
Спрашивает у игрока имя файла для открытия с данным фильтром. Фильтр имеет
форму 'name1|mask1|name2|mask2|...'. Маска содержит различные опции с точкой и
запятой между ними. * - означает любую строку. Например: 'bitmaps|*.bmp;*.wmf'.
Если игрок нажимает Cancel, то возвращает пустую строку.
get_save_filename(filter,fname)
Спрашивает имя файла для сохранения с заданным фильтром. Если игрок нажимает
Cancel, то возвращает пустую строку.
get_directory(dname)
Запрашивает каталог. dname -
название по умолчанию. Если игрок нажимает Cancel, то возвращает пустую строку.
get_directory_alt(capt,root)
Альтернативный способ запросить каталог. capt
- название, которое будет отображено. root
- корень дерева каталогов, который будет отображён. Используйте пустую строку,
чтобы отобразить всё дерево. Если игрок нажимает Cancel, то возвращает пустую
строку).
show_error(str,abort)
Отображает стандартное сообщение об ошибке (и/или записывает его в log файл). abort - указывает должна ли игра
прерваться.
Список результатов
Один специальный всплывающий экран - список лучших
результатов, который используется в каждой игре. Существуют следующие функции:
highscore_show(numb)
Отображает таблицу лучших результатов. numb
- новый игровой счёт. Если имеющийся игровой счёт достаточен для добавления в
список, то игрок может ввести своё имя. Используйте -1 чтобы просто показать
текущий список.
highscore_set_background(back)
Устанавливает фоновое изображение для использования. back - должно быть индексом одного из
фоновых ресурсов.
highscore_set_border(show)
Устанавливает, должна ли форма списка результатов иметь границы или нет.
highscore_set_font(name,size,style)
Устанавливает шрифт, используемый для текста в таблице. (Это обычный шрифт
Windows, не один из шрифтовых ресурсов.) Вы определяете шрифт (0=обычный,
1=жирный, 2=курсив и 3=жирный-курсив).
highscore_set_colors(back,new,other)
Устанавливает цвета, используемые для фона, новые вводы в таблицу и другие
данные.
highscore_set_strings(caption,nobody,escape)
Изменяет различные встроенные строки, используемые при показе таблицы. caption - заголовок формы. nobody - используемая строка, когда никого
нету в списке таблицы. escape -
строка внизу, указывающая нажатие клавиши . Вы можете использовать это в
основном при использовании в игре другого языка.
highscore_show_ext(numb,back,border,col1,col2,name,size)
Показывает таблицу результатов. numb
- является новым счётом. Если этот счёт будет достаточно хорош, чтобы быть
добавленным к списку, то игрок может ввести имя. Используйте -1 для простого
отображения текущего списка. back
- является используемым фоновым изображением, border
- указывает, показывать ли границу. col1
- цвет для нового входа, col2 -
цвет для других входов. name -
является именем шрифта для использования, и size
- является размером шрифта.
highscore_clear() Очищает
список лучших результатов.
highscore_add(str,numb)
Добавляет игрока с именем str и
счётом numb в список.
highscore_add_current()
Добавляет текущий счёт к списку результатов. Игрока попросят ввести имя.
highscore_value(place)
Возвращает счёт игрока в указанное место (1-10). Данная функция может быть
использована для рисования своего собственного списка лучших результатов.
highscore_name(place)
Возвращает имя игрока в указанное место (1-10).
draw_highscore(x1,y1,x2,y2)
Отображает таблицу результатов в комнате в указанном окне, используя текущий
шрифт.
|