Лекция: Учебник по Html для чайников. Инструментарий.

Здравствуйте, игроделы! Каждый любитель РПГ’шек, я уверен, после прохождения (или в процессе) какой-либо игрушки, загорался желанием создать свой собственный шедевр. Но если руки и «доходили» до этого, то почти всегда энтузиазм спадал на написании ролевой системы, и прокачки героя. Когда я только познакомился с Game Maker’ом, я тоже хотел сделать супер крутую РПГ. Уже продумал сюжет, героев, и всякие навороты придумал, но застопорился на этом самом месте. Тогда я ещё был только новичком в GM, поэтому забросил проект. Много позже я вновь вернулся к этой идее, уже подкреплённый средним знанием GML, и основными приёмами Гейм Мэйкера. В этой статье я расскажу, как я решил подобную проблему.
Для начала добавьте в ваш проект, спрайты игрока, пули и врага. Создайте для них объекты. Откройте объект игрока, сделайте так, чтобы он мог передвигаться по экрану и стрелял (как это сделать, подробно описано во многих статьях, поэтому я не стану снова переписывать сюда то, чего и так навалом). Теперь в объекте пули сделайте, чтобы при выстреле она летела куда нужно (это тоже описано во многих статьях).И, наконец в объекте врага ничего делать не нужно.
Добавьте ещё один любой спрайт, который вам нравится, и присвойте его новому объекту, (спрайт можете выбрать первый попавшийся, так как его всё равно не будет видно, а делается это просто для удобства). В нашем новом объекте в событие Create поставьте действие Set the value of variable. В поле переменной укажите global.experience (название переменной может быть любое, но не забудьте, что она отвечает за опыт), а значение оставьте 0. Это действие добавляет новую глобальную переменную опыта и присваивает ей значение 0. В событие Draw добавьте действие установки шрифта (Set a font for drawing text), в котором выберите шрифт, который вам больше нравится, и действие Draw a text, в нём запишите такую фразу: 'Опыт:'+string(global.experience), и поставьте галочку рядом с полем Relative. Сдублируйте данный объект три раза и на время отложите его.

В первой копии настройки действий должны быть такими (если какие-то поля не указанны, значит, их переправлять не нужно):
Create=> Set the value of variable=>Variable: global.level Value: 0
Draw=>Draw a text=>Text: 'Уровень: '+string(global.level)

Во второй:
Create=> Set the value of variable=>Variable: global.strenght Value: 5
Draw=>Draw a text=>Text: 'Сила: '+string(global.strenght)

В третьей:
Create=>Set the value of variable=>Variable: global.lovkost Value: 3
Draw=>Draw a text=>Text: 'Ловкость: '+string(global.lovkost)

Почти всё. Далее снова откройте первый объект «с опытом», и в событие Step добавьте такой код:

if global.experience>100
{
show_message('Вы получили новый уровень!')
if global.level<10
{
global.strenght+=1
}
if global.level<5
{
global.lovkost+=1
}
global.level+=1
global.experience=0
}

Этот код к томуже вводит некоторые ограничения на переменные, чтобы герой не был слишком супермэном. Разместите все объекты в комнате, и запустите игру. Если вы всё сделали правильно, то всё должно работать. Но пока ваши уровень, сила и ловкость ни на что не влияют. Оставите это так, мы, конечно не можем, поэтому придётся слегка переправить объект пули. Откройте его и удалите действия полёта пули. Вместо них в событие Create добавьте действие Set direction and speed of motion. В строке direction укажите направление полёта пули, а в строке speed пропишите следующее: global.lovkost. Это заставит пулю лететь со скоростью равной показателю ловкости. В событие столкновения пули с врагом добавьте такой код:

global.experience+=global.strenght
instance_destroy()

Более ничего делать не надо, можете запускать игру и прокачиваться в своё удовольствие.

При написании статьи использовалась программа версии 5.3А

 

 

Фоновые изображения (Backgrounds) в GML
Каждая комната может иметь до 8 фоновых изображений. Также имеется цвет для фона. Вы можете изменить любой из параметров фонов из части кода, используя следующие переменные (обратите внимание, что некоторые — массивы, которые располагаются от 0 до 7, указывают на разные фоны):
background_color — Цвет фона для комнаты.
background_showcolor — Очищать ли окно с окрашенным фоном.
background_visible[0..7] — Является ли определенное фоновое изображение видимым.
background_foreground[0..7] — Является ли фон в действительности изображением переднего плана (foreground).
background_index[0..7] — Индекс фонового изображения для фона (background).
background_x[0..7] — X позиция фонового изображения.
background_y[0…7] — Y позиция фонового изображения.
background_width[0…7]* — Ширина фонового изображения.
background_height[0…7]* — Высота фонового изображения.
background_htiled[0..7] — Горизонтальные ли плитки.
background_vtiled[0..7] — Вертикальные ли плитки.
background_hspeed[0..7] — Скорость горизонтального скроллинга фона (пикселей за шаг).
background_vspeed[0..7] — Скорость вертикального скроллинга фона (пикселей за шаг).
background_alpha[0..7] — Значение прозрачности (alpha), для использования при рисовании фона. Значение 1 — нормальная установка; значение 0 полностью прозрачно. Используйте с осторожностью. При рисовании частично прозрачного фона затрачивается больше времени и замедляется игра.
Фоновые изображения используют большое количество памяти. Чтобы рисовать их, достаточно быстро, бывает полезно сохранять их в видео памяти. Вы можете указать, какие фоны должны быть сохранены в видео памяти. Также Вы можете определить, какие фоны должны быть загружены только по мере необходимости. Такие фоны будут выгружены из памяти по окончанию уровня. Вы можете частично управлять данными процессами используя код. Существуют следующие функции:
background_discard(numb) — Освобождает (видео) память, используемую для фонового изображения. Если фон имеет свойство «load-on-use», то он будет полностью удален из памяти. Иначе, его копия останется в обычной памяти и такой фон может быть восстановлен в любой момент, когда это будет необходимо.
background_restore(numb) — Восстанавливает фоновое изображение в (видео) памяти. Обычно это происходит автоматически, когда фон необходим. Но иногда могут возникнуть проблемы, в особенности когда установлена опция «load-on-use», и фон большой. Таким образом Вы можете насильно загрузить его, например в начале уровня, в котором данный фон необходим.
discard_all()- Выгружает из памяти все спрайты, фоны и звуки, которые имеют установку «load-on-use».
Когда игра использует много разных, больших по размеру, фоновых изображений, это делает игровой файл большим и как следствие значительно замедляется загрузка. Также, если Вы хотите сохранить их в памяти, в момент когда они понадобятся, это значительно увеличивает объем требуемой памяти. Как альтернативу, Вы можете использовать фоновые изображения к игре в виде (.bmp, .jpg или .gif файлов; другие форматы не поддерживаются) и загружать их в процессе игры. Для этого существуют три подпрограммы. Другое использование, когда Вы хотите позволить игроку выбирать фоновое изображение. Также, Вы можете захотеть сохранить изображение из игры и использовать его позже в виде фона (например для программы рисования). Наконец, сложные фоны, сохраненные в виде jpg файлов используют намного меньше памяти. Имеются функции:
background_add(fname,transparent,videomem,loadonuse) — Добавляет изображение, сохраненное в файле fname в набор фоновых ресурсов. Поддерживаются только bmp, jpg и gif изображения. transparent указывает, является ли изображение частично прозрачным, videomem указывает, должен ли фон быть сохранен в видео памяти и loadonuse указывает, должен ли фон быть загружен только когда он используется. Функция возвращает индекс нового фона, чтобы Вы могли его тогда использовать, для рисования фона или назначения его в качестве переменной background_index[0], чтобы сделать его видимым в текущей комнате. Когда происходит ошибка возвращается -1.
background_replace(ind,fname,transparent,videomem,loadonuse) — То же самое что и выше, но в данном случае фон с индексом ind заменяется. Функция возвращается, если ли замена была успешной. Если фон в настоящее время является видимым в данной комнате, то он также может быть заменен.
background_delete(ind) — Удаляет фон из памяти, освобождая используемую память. (Он больше не может быть восстановлен).
ПРЕДУПРЕЖДЕНИЕ: Если Вы в течение игры ты сохраняете игровое состояние (записываете игру), добавленные или измененные фоновые изображения, в записанной игре, не сохраняются. Таким образом, если Вы позже загрузите записанную игру, их там не будет больше. Также существуют некоторые сложности, связанные с авторским правом на распространение и использование gif файлов, с Вашими (коммерческими) приложениями. В связи с чем советуем не использовать их.

 

Файлы

 

В более продвинутых играх, Вы, вероятно, захотите, чтобы данные читались из файла, который будете поставлять с игрой. Например, Вы могли бы сделать файл, который описывает определённые моменты, которые должны случиться. Также, Вы, вероятно, захотите сохранить информацию для следующего запуска игры (например, состояние текущей комнаты). Следующие функции существует, чтобы читать и записывать данные в текстовые файлы:

 

file_text_open_read(fname) Открывает файл с указанным именем для чтения. Функция возвращает id файла, что должно быть использовано в других функциях. Вы можете открыть много файлов в то же самое время (32 максимум). Не забывайте закрывать их, когда они завершат свои действия.

file_text_open_write(fname) Открывает указанный файл для записи и создаёт файл, если он не существует. Функция возвращает id файла, что должно быть использовано в других функциях.

file_text_open_append(fname) Открывает указанный файл для добавления данных при завершении, создаёт их, если они не существует. Функция возвращает id файла, что должно быть использовано в других функциях.

file_text_close(fileid) Закрывает файл с заданным id.

file_text_write_string(fileid,str) Записывает строку в файл с заданным id.

file_text_write_real(fileid,x) Записывает реальную величину в файл с заданным id.

file_text_writeln(fileid) Записывает символ новой строки в файл.

file_text_read_string(fileid) Читает строку из файла с заданным id и возвращает эту строку. Строка заканчивается в конце линии.

file_text_read_real(fileid) Читает реальную величину из файла и возвращает эту величину.

file_text_readln(fileid) Пропускает остальную часть линии в файл и начинает в начале следующей строки.

file_text_eof(fileid) Возвращает, если достигнуто окончание файла.

 

Чтобы манипулировать файлами в Вашей файловой системе, Вы можете использовать следующие функции:

 

file_exists(fname) Возвращает, когда файл с заданным именем существует (истина) или не существует (ложь).

file_delete(fname) Удаляет файл с заданным именем.

file_rename(oldname,newname) Переименовывает файл с именем oldname в newname.

file_copy(fname,newname) Копирует файл fname в newname.

directory_exists(dname) Возвращает, если существует указанная директория.

directory_create(dname) Создаёт директорию с заданным именем (включая путь к ней), если она не существует.

file_find_first(mask,attr) Возвращает имя первого файла, который подходил маске и атрибутам. Если такой файл не существует, возвращается пустая строка. Маска может содержать путь и может содержать специальные символы, например 'C:\temp\*.doc. Атрибуты предоставляют дополнительные файлы, которые Вы хотите видеть. (Так что нормальные файлы всегда возвращаются, когда они подходят маске.) Вы можете добавить следующие константы, чтобы увидеть тип файлов:

 

fa_readonly файлы только для чтения

fa_hidden скрытые файлы

fa_sysfile системные файлы

fa_volumeid файлы тома-идентификатора

fa_directory директории

fa_archive архивные файлы

 

 

file_find_next() Возвращает имя следующего файла, который подходит заданной маске и атрибутам. Если такой файл не существует, то возвращается пустая строка.

file_find_close() Должно быть вызвано после обработки всех файлов, чтобы освободить память.

file_attributes(fname,attr) Возвращает, если файл имеет все атрибуты в attr. Используйте комбинацию вышеуказанных констант.

 

Следующие функции могут быть использованы для изменения имени файла. Отметьте, что эти функции не работают в фактических файлах, они взаимодействуют только со строками.

 

filename_name(fname) Возвращает часть имени указанного файлового имени с расширением, но без пути.

filename_path(fname) Возвращает часть пути указанного файлового имени, включая обратную косую черту.

filename_dir(fname) Возвращает часть директории указанного файлового имени, это нормально, так же как и полный путь, но за исключением обратной косой черты.

filename_drive(fname) Возвращает информацию устройства filename.

filename_ext(fname) Возвращает часть расширения указанного файлового имени, включая подачу точки.

filename_change_ext(fname,newext) Возвращает указанное файловое имя, с расширением (включая точку) изменённое в новое расширение. Используйте пустую строку как новое расширение. Вы также можете удалить расширение.

 

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

 

file_bin_open(fname,mod) Открывает файл с указанным именем. Режим указывает, что может подходить файлу: 0 = чтение, 1 = запись, 2 = как чтение, так и запись. Функция возвращает id файла, что должно быть использовано в других функциях. Вы можете открыть многочисленные файлы в то же самое время (32 максимум). Не забывайте закрывать их, как только они завершат свои действия.

file_bin_rewrite(fileid) Перезаписывает файл с заданным id, то есть, очищает его и начинает записывать в начале.

file_bin_close(fileid) Закрывает файл с заданным id.

file_bin_size(fileid) Возвращает размер (в байтах) файла с заданным id.

file_bin_position(fileid) Возвращает текущую позицию (в байтах; 0 — первая позиция) файла с заданным id.

file_bin_seek(fileid,pos) Перемещает текущую позицию файла на указанную позицию. Чтобы добавить позицию перемещения файла по размеру с перезаписываемым файлом.

file_bin_write_byte(fileid,byte) Записывает байт данных в файл с заданным id.

file_bin_read_byte(fileid) Читает байты данных из файла и возвращает его.

 

Если пользователь выбрал бы безопасный режим в предпочтениях, то для множества таких программ, Вы не смогли бы определить путь — а только файлы, находящиеся в папке приложения могут быть, например, записаны.

 

Следующие три переменные предназначенные «только для чтения» могут быть полезны:

 

game_id* Уникальный идентификатор для игры. Вы можете использовать его, если Вам нужны уникальные имена файлов.

working_directory* Прокладывает директорию для игры. (Не включая обратную косую черту.)

temp_directory* Создаёт временную директорию для игры. Вы можете загрузить временные файлы в эту папку. Они будут удалены в конце игры.

 

В определённых ситуациях, Вы могли бы захотеть предоставить возможность играющим вносить командные аргументы строк в игру, которые будут выполнены (например, чтобы создавать чит-коды или специальные режимы). Чтобы получить такие аргументы, Вы можете использовать две следующие подпрограммы.

 

parameter_count() Возвращает число параметров командной строки (отметьте, что само имя программы — одно из них.

parameter_string(n) Возвращает параметры командной строки n. Первый параметр имеет индекс 0. Это — имя программы.

 

Вы можете прочитать величину переменной среды, используя следующую функцию:

 

environment_get_variable(name) Возвращает величину (строки) переменной среды с заданным именем.

 

Реестр

 

Если Вы захотите загрузить небольшое количество информации между запусками игры — существует более простой механизм, чем использование файла. Вы можете использовать регистр. Реестр является большой базой данных, поддерживаемой Windows, чтобы следить за своего рода установочными параметрами программ. Вход имеет имя и величину. Вы можете использовать как строки, так и реальные величины. Для этого существуют следующие функции:

 

registry_write_string(name,str) Создаёт вход в реестр с заданной величиной имени и строки.

registry_write_real(name,x) Создаёт вход в реестр с заданным именем и реальной величиной.

registry_read_string(name) Возвращает строку, которое содержит заданное имя. (Имя должно существовать — в противном случае возвращается пустая строка.)

registry_read_real(name) Возвращает реальную строку, которая содержит заданное имя. (Имя должно существовать. В противном случае возвращается число 0.)

registry_exists(name) Возвращает существующее заданное имя.

 

На самом деле величины в реестре сгруппированы в ключах. Все вышеуказанные программы работают в величинах в пределах ключей, особенно те, которые создаются для Вашей игры. Ваша программа может использовать это, чтобы получить определённую информацию о системе, когда игра работает. Вы можете также прочитать величины в других ключах. Вы также можете записать их, но будьте очень осторожны. ВЫ ЛЕГКО МОЖЕТЕ УНИЧТОЖИТЬ СВОЮ СИСТЕМУ таким образом. (Запись не разрешена в безопасном режиме.) Отметьте, что ключи опять же устанавливаются в группах. Следующие программы по умолчанию работают в группе HKEY_CURRENT_USER. Но Вы можете изменить корневую группу. Так, например, если Вы хотите обнаружить текущую временную директорию, используйте

 

path = registry_read_string_ext('\Environment','TEMP');

 

Существуют следующие функции:

 

registry_write_string_ext(key,name,str) Создаёт вход в ключе реестра с заданной величиной имени и строки.

registry_write_real_ext(key,name,x) Создаёт вход в ключ реестра с заданным именем и реальной величиной.

registry_read_string_ext(key,name) Возвращает строку, это заданное имя в указанных ключевых хранилищах. (Имя должно существовать. В противном случае — возвращается пустая строка.)

registry_read_real_ext(key,name) Возвращает реальный ключ с заданным именем в указанных ключевых хранилищах. (Имя должно существовать. В противном случае вовращается число 0.)

registry_exists_ext(key,name) Возвращает существующее заданное имя в заданном ключе.

registry_set_root(root) Устанавливает корень для других программ. Используйте следующие величины:

 

0 = HKEY_CURRENT_USER

1 = HKEY_LOCAL_MACHINE

2 = HKEY_CLASSES_ROOT

3 = HKEY_USERS

 

INI файлы

 

Передача определённых установочных настроек параметра в программу, является стандартным механизмом файлов INI. Файлы INI содержат секции, и каждая секция содержит множество пар имени-величины. Например, здесь представлен типичный файл INI:

 

[Form]

 

Top=100

 

Left=100

 

Caption=The best game ever

 

[Game]

 

MaxScore=12324

 

Этот файл содержит две секции: первая — Форма вызова, и вторая — название Игры. Первая секция содержит три пары. Первые две пары имеют реальную величину, пока третья имеет величину строки. Такие файлы INI легко могут создаваться и изменяться в Game Maker. Для этого существуют следующие функции:

 

ini_open(name) Открывает файл INI с указанным именем. Файл ini должен быть загружен в одну папку с игрой!

ini_close() Закрывает к настоящему времени открытый INI файл.

ini_read_string(section,key,default) Читает величину строки указанного ключа в указанной секции. Когда ключ или секция не существует, значение возвращается по умолчанию.

ini_read_real(section,key,default) Читает реальную величину указанного ключа в указанной секции. Когда ключ или секция не существует, значение возвращается по умолчанию.

ini_write_string(section,key,value) Записывает величину строки для указанного ключа в указанной секции.

ini_write_real(section,key,value) Записывает реальную величину для указанного ключа в указанной секции.

ini_key_exists(section,key) Возвращает существующий указанный ключ в указанной секции.

ini_section_exists(section) Возвращает существующую указанную секцию.

ini_key_delete(section,key) Удаляет указанный ключ из указанной секции.

ini_section_delete(section) Удаляет указанную секцию.

 

Выполняемые программы

 

Game Maker также имеет возможность запускать внешние программы. Для этого доступны две функции: execute_program и execute_shell. Функция execute_program запускает программу и, возможно, некоторые аргументы. Эта функция может ожидать завершения программы (пауза игры) или продолжения игры. Функция execute_shell открывает файл. Это может быть любой файл, для которого определена некоторая ассоциация, например html файл, текстовый файл и т.п. Или это может быть программой. Эта функция не может ожидать завершения, а продолжит игру.

 

execute_program(prog,arg,wait) Выполнять программу prog с аргументами arg. wait — указывает ожидания перед завершением.

execute_shell(prog,arg) Выполняет программу (или файл) в оболочке.

 

Обе функции не будут работать, если пользователь установит безопасный режим в предпочтениях. Вы можете проверить это, используя переменную только для чтения:

 

secure_mode* Игра работает в Безопасном режиме.

 

Существует пять основных функций, связанных с обработкой звука: две — для проигрывания звука, одна — для проверки проигрывается ли звук, и две — для остановки звука. Все они в качестве параметра используют индекс звука. Название звука и является индексом. Но Вы можете также сохранить индекс в переменной и использовать только её.

 

sound_play(index) Проигрывает указанный звук. Если звук является фоновой музыкой, то текущая фоновая музыка останавливается.

sound_loop(index) Проигрывает звук с указанным именем непрерывно. Если звук является фоновой музыкой, то текущая фоновая музыка останавливается.

sound_stop(index) Останавливает звук с указанным именем. Если имеются множественные звуки с этим индексом проигрывающимися одновременно, то все будут остановлены.

sound_stop_all() Останавливает все звуки.

sound_isplaying(index) Возвращает, если (копия) указанный звук проигрывается. Обратите внимание, что это функции возвращают истину, когда звук фактически проигрывается через динамики. После того, как Вы вызываете функцию проигрывания звука, то она не сразу задействуется динамиками, поскольку она может быть всё ещё возвращать ложь некоторое время. Подобно, когда звук остановлен, Вы всё ещё слышите его некоторое время (например, эхо) и функция будет всё ещё возвращать истину.

 

Также возможно использование следующих звуковых эффектов. В частности Вы можете изменить громкость и панораму звука, то есть, когда звук исходит из левого или правого динамика. Во всех этих случаях, громкость может быть только уменьшена. Эти функции не работают для файлов, которые проигрываются через медиа плеер (например, mp3 файлы).

 

sound_volume(index,value) Изменяет громкость для указанного звука (0 = низкий уровень, 1 = высокий).

sound_global_volume(value) Изменяет основную громкость для всех звуков (0 = низкий уровень, 1 = высокий).

sound_fade(index,value,time) Изменяет громкость для указанного звука на новое значение (0 = низкий уровень, 1 = высокий) в течение указанного времени (миллисекунд). Это может быть использовано, чтобы ослабевать или усиливать музыку.

sound_pan(index,value) Изменяет панораму для указанного звука (-1 = влево, 0 = центр, 1 = вправо).

sound_background_tempo(factor) Изменяет темп фоновой музыки (если это midi файл). factor — указывает показатель, с которым будет ускоряться темп. Значение 1 относиться к нормальному темпу. Большие значения — более быстрый темп, меньшие значения — медленный темп. Значения должны быть от 0.01 до 100.

 

Кроме midi, wave и mp3 файлов в действительности поддерживается ещё четвёртый тип, который может быть проигран — это direct файлы. Они имеют расширение .sgt. Такие файлы всё же часто ссылаются на другие файлы, описывающие, например, название группы или информацию о стиле музыки. Чтобы находить такие файлы, звуковая система должна знать, где они расположены. С этой целью, Вы можете использовать следующую функцию, чтобы установить поиск директорий с этими файлами. Имейте в виду, что Вы должны добавить их самостоятельно. Game Maker автоматически не включает такие дополнительные файлы.

 

sound_set_search_directory(dir) Устанавливает директорию, в которой direct файлы должно быть обнаружены. Cтрока указываемой директории dir не должна содержать косой обратной черты '\'.

 

Звуковые эффекты могут быть использованы для изменения звуков и фоновой музыки. Поймите, что звуковые эффекты в основном применяются только к wave и midi файлам — не к mp3 файлам. Эта глава описывает существующие функции для использования и изменения звуковых эффектов. Чтобы использовать эти функции, Вам нужно хорошо разбираться в звуках и работе синтезаторов. Пояснение этому здесь не описывается. Поищите дополнительную информацию в Интернете или специальной литературе.

 

Чтобы применить звуковой эффект к конкретному звуку, Вы можете указать его, определяя звуковой ресурс, или можете использовать следующие функции

 

sound_effect_set(snd,effect) Устанавливает звуковой эффект (или комбинацию) для указанного звука. effect — может быть любым из следующего величин:

 

se_none

se_chorus

se_echo

se_flanger

se_gargle

se_reverb

se_compressor

se_equalizer

 

Вы можете установить комбинацию эффектов, добавляя их через величины. Например, Вы можете использовать

 

sound_effect_set(snd,se_echo+se_reverb);

 

чтобы получить комбинацию эффектов Эха и Ревербации.

 

Все эффекты имеют некоторые установки по умолчанию. Вы можете изменить эти установки как только эффект будет применён к звуку. Порядок здесь важен. Вы сначала применяете эффект к звуку, а затем устанавливаете для него параметры. Как только Вы используете повторяющиеся звуковые эффекты, установки пропадают, и Вы можете установить их снова. Отметьте, что все параметры должны пролегать в конкретном диапазоне, который описывается ниже. Для изменения параметров эффекта существуют следующие функции:

 

sound_effect_chorus(snd,wetdry,depth,feedback,frequency,wave,delay,phase) Устанавливает параметры для эффекта chorus для указанного звука. Следующие параметры могут быть установлены:

 

wetdry Коэффициент «мокрого» (обработанного) сигнала для «сухого» (необработанного) сигнала. (диапазон: от 0 до 100, по умолчанию значение 50)

depth Процент, с которым время задержки модулируется низкочастотным генератором, в сотых долях процента. (диапазон: от 0 до 100, по умолчанию значение 25)

feedback Процент выводного сигнала, для подпитки «эффектового» входа. (диапазон: от -99 до 99, по умолчанию значение 0)

frequency Частота LFO. (диапазон: от 0 до 10, по умолчанию значение 0)

wave Wave форма LFO. (0 = triangle, 1 = wave, по умолчанию значение 1)

delay Количество задержанных миллисекунд перед обратным проигрыванием. (диапазон: от 0 до 20, по умолчанию значение 0)

phase Фаза между левым и правым LFO. (диапазон: от 0 до 4, по умолчанию значение 2)

 

sound_effect_echo(snd,wetdry,feedback,leftdelay,rightdelay,pandelay) параметры для эффекта echo для указанного звука. Следующие параметры могут быть установлены:

 

wetdry Коэффициент «мокрого» (обработанного) сигнала для «сухого» (необработанного) сигнала. (диапазон: от 0 до 100, по умолчанию значение 50)

feedback Процент выводного сигнала, для подпитки «эффектового» входа. (диапазон: от 0 до 100, по умолчанию значение 0)

leftdelay Задержка для левого канала, в миллисекундах. (диапазон: от 1 до 2000, по умолчанию значение 333)

rightdelay Задержка для правого канала, в миллисекундах. (диапазон: от 1 до 2000, по умолчанию значение 333)

pandelay Меняет левые и правые задержки с каждым последующим Зхом. (0 = не меняет, 1 = меняет, по умолчанию значение 0)

 

sound_effect_flanger(snd,wetdry,depth,feedback,frequency,wave,delay,phase) Устанавливает параметры для эффекта flanger для указанного звука. Следующие параметры могут быть установлены:

 

wetdry Коэффициент «мокрого» (обработанного) сигнала для «сухого» (необработанного) сигнала. (диапазон: от 0 до 100, по умолчанию значение 50)

depth Процент, с которым время задержки промодулировано низкочастотным генератором, в сотых долях процента. (диапазон: от 0 до 100, по умолчанию значение 25)

feedback Процент выводного сигнала, для подпитки «эффектового» входа. (диапазон: от -99 до 99, по умолчанию значение 0)

frequency Частота LFO. (диапазон: от 0 до 10, по умолчанию значение 0)

wave Wave форма LFO. (0 = triangle, 1 = wave, по умолчанию значение 1)

delay Количество задержанных миллисекунд перед обратным проигрыванием. (диапазон: от 0 до 20, по умолчанию значение 0)

phase Фаза между левым и правым LFO. (диапазон: от 0 до 4, по умолчанию значение 2)

 

sound_effect_gargle(snd,rate,wave) Устанавливает параметры для эффекта gargle для указанного звука. Следующие параметры могут быть установлены:

 

rate Показатель модуляции, в Герцах. (диапазон: от 1 до 1000, по умолчанию значение 1)

wave Форма wave-модуляции. (0 = triangle, 1 = square, по умолчанию значение 0)

 

sound_effect_reverb(snd,gain,mix,time,ratio) Устанавливает параметры для эффекта reverb для указанного звука. Следующие параметры могут быть установлены:

 

gain Увеличение сигнала Входа, в децибелах (dB). (диапазон: от -96 до 0, по умолчанию значение 0)

mix Смешивание Ревербации в dB. (диапазон: от -96 до 0, по умолчанию значение 0)

time Время Ревербации, в миллисекундах. (диапазон: от 0.001 до 3000, по умолчанию значение 1000)

ratio Частотный коэффициент (диапазон: от 0.001 до 0.999, по умолчанию значение 0.001)

 

sound_effect_compressor(snd,gain,attack,release,threshold,ratio,delay) Устанавливает параметры для эффекта compressor для указанного звука. Следующие параметры могут быть установлены:

 

gain Увеличение Выводного сигнала после сжатия. (диапазон: от -60 до 60, по умолчанию значение 0)

attack Время, которое перед сжатием достигнет своей полной величины. (диапазон: от 0.01 до 500, по умолчанию значение 0.01)

release Скорость, в которой сжатие останавливается после входящих сигналов нижеуказанного Порога. (диапазон: от 50 до 3000, по умолчанию значение 50)

threshold Точка, в которой начинается сжатие, в децибелах. (диапазон: от -60 до 0, по умолчанию значение -10)

ratio Коэффициент Сжатия. (диапазон: от 1 до 100, по умолчанию значение 10)

delay Время после того, как Порог будет достигнут прежде, чем будет начата фаза атаки, в миллисекундах. (диапазон: от 0 до 4, по умолчанию значение 0)

 

sound_effect_equalizer(snd,center,bandwidth,gain) Устанавливает параметры для эффекта equalizer для указанного звука. Следующие параметры могут быть установлены:

 

center Частота Центра, в герцах. (диапазон: от 80 до 16000)

bandwidth Ширина полосы частот, в тональностях. (диапазон: от 1 до 36)

gain Прирост. (диапазон: от -15 до 15)

 

3D звуки относятся к звуку, который имеет позицию (и скорость), что касается слушателя. Хотя наиболее выдающееся их использование — в 3D играх, но Вы можете также эффективно использовать их в 2D играх. Смысл в том, чтобы звук имел позицию в пространстве. Во всех функциях, слушатель предполагает нахождение звука в позиции (0,0,0). Система вычисляет, как слушатель должен услышать звук и приспособить его соответственно. Эффект особенно хорош, когда у Вас имеется хорошая звуковая система, но и будет звучать неплохо при небольших динамиках.

 

Кроме позиции, звук может также иметь скорость. Она основана на известных эффектах Доплера, которые правильно смоделированы. Наконец, звук может иметь ориентацию и, опять же, звук соответственно приспосабливается.

 

Game Maker поддерживает опции 3D звука через приведённые ниже функции. Они работают только для звуковых ресурсов, которые будут указаны как 3D. (Недостаток в том, что 3D звуки — моно, не стерео.)

 

sound_3d_set_sound_position(snd,x,y,z) Устанавливает позицию указанного звука с отношением к слушателю в указанную позицию пространства. Значения в оси x увеличиваются слева направо, в оси y снизу вверх и в оси z от близкого расстояния до дальнего расстояния. Эти значения измеряются в метрах. Громкость, с которой звук будет услышан, будет зависеть от этого измерения так же, как и в реальном мире.

sound_3d_set_sound_velocity(snd,x,y,z) Устанавливает скорость указанного звука на указанный вектор в пространстве. Пожалуйста, отметьте, что установка скорости не означает, что позиция изменится. Скорость используется для расчёта эффектов Доплера. Так что если Вы хотите переместить звук, то Вы должны сами изменить его позицию.

sound_3d_set_sound_distance(snd,mindist,maxdist) Устанавливает минимальное расстояние, в котором звук достигает большего увеличения в громкости; и максимальное расстояние, в котором звук не может быть больше услышан. Итак, если расстояние пролегает между 0 и минимальное расстоянием, то звук будет находиться в максимальной амплитуде. Когда между минимальным и максимальным расстоянием амплитуда медленно уменьшается до значения максимально достигнутого расстояния, то звук, во всяком случае, не длинный. По умолчанию, минимальное расстояние является 1 метром, а максимальное расстояние — 1 миллиард метров.

sound_3d_set_sound_cone(snd,x,y,z,anglein,angleout,voloutside) Обычно звук имеет одну и ту же амплитуду в указанном расстоянии во всех направлениях. Вы можете установить звуковой конус, чтобы изменить это и сделать звучание направленным. x,y,z — определяют направление звукового конуса. anglein — определяет внутренний угол. Если слушатель в зоне воздействия внутреннего угла, то он услышит звук в своей обычной громкости. angleout — определяет внешний угол. Когда слушатель за пределами зоны воздействия внешнего угла, то громкость указывается с помощью значения voloutside. Чтобы быть точным, voloutside — отрицательное число, которое указывает количество сотен децибел, которое должно быть вычтено из внутренней громкости. Между внутренним и внешним углом постепенно звук будет уменьшаться.

 

Также имеется большое количество функций, позволяющих проигрывать музыку прямо с компакт диска:

 

cd_init() Должна быть вызвана перед использованием других функций. Также должна вызываться при замене CD (или просто время от времени).

cd_present() Возвращает, если CD присутствует в заданном по умолчанию приводе.

cd_number() Возвращает число треков на CD.

cd_playing() Возвращает, если CD проигрывается.

cd_paused() Возвращает, если CD приостановлен или остановлен.

cd_track() Возвращает номер текущего трека (1=первый).

cd_length() Возвращает полную продолжительность CD, в миллисекундах.

cd_track_length(n) Возвращает продолжительность трека n находящегося на CD, в миллисекундах.

cd_position() Возвращает текущую позицию на CD, в миллисекундах.

cd_track_position() Возвращает текущую позицию в треке, который проигрывается, в миллисекундах.

cd_play(first,last) Сообщает CD приводу проигрывать треки с первого до последнего. Если Вы хотите проиграть весь CD — укажите в качестве параметра 1 и 1000.

cd_stop() Прекращает проигрывание.

cd_pause() Приостанавливает проигрывание.

cd_resume() Возобновляет проигрывание.

cd_set_position(pos) Устанавливает позицию на CD, в миллисекундах.

cd_set_track_position(pos) Устанавливает позицию в текущем треке, в миллисекундах.

cd_open_door() Открывает лоток CD проигрывателя.

cd_close_door() Закрывает лоток CD проигрывателя.

 

Также имеется очень важная функция для доступа к мультимедийным возможностям Windows.

 

MCI_command(str) Посылает командную строку в мультимедийную систему Windows, используя управляющий интерфейс (Media Control Interface). Это возвращает обратную строку. Вы можете использовать эту функцию для управления всеми мультимедийными устройствами своего рода. Смотрите документацию Windows для получения подробной информации об этой команде. Например: MCI_command('play cdaudio from 1') — проигрывает СD после правильной инициализации этой функции, используя другие команды. Эта функция доступна только в расширенном режиме!

Учебник по Html для чайников. Инструментарий.

еще рефераты
Еще работы по информатике