Страниц: [1]
Автор Тема: Фоновые изображения (Backgrounds) в GML  (Прочитано 483 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Vendet
Администратор
Старожил форума
*

Репутация: 151
Offline Offline

Пол: Мужской
Награды:
Тру Админ)
Сообщений: 790


Админ псих :D


WWW
« : Февраль 13, 2010, 14:33:57 »

Фоновые изображения (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) - Удаляет фон из памяти, освобождая используемую память. (Он больше не может быть восстановлен).
Записан

1. Помог!? +1 в репу)
2. Новичок!? Читай правила ->>
- «Единственный путь стать умнее - играть с более умным противником», - основы шахмат, 1883 г.

Страниц: [1]
Печать
Перейти в: