Многие знают, что в
ОС Windows есть возможность установки
режима отображения для
фона рабочего стола... Почему бы не сделать такое же в игре? Особенно это пригодится если игра должна подстраиваться под
разрешение монитора.
Для этого я написал сей небольшой
скрипт, который необходимо вызвать в событии
Draw
объекта, который занимается
отрисовкой:
//argument0 - имя фона
//argument1 - режим (заполнение, растягивание, в центре, замощение/плитка)
if(argument1 = "filling")
{
if(background_get_width(argument0) / room_width > background_get_height(argument0) / room_height)
{
size = room_height / background_get_height(argument0)
}
else
{
size = room_width / background_get_width(argument0)
}
draw_background_ext(argument0,
(room_width - background_get_width(argument0) * size) / 2,
(room_height - background_get_height(argument0) * size) / 2,
size, size, 0, c_white, 1)
}
else if(argument1 = "stretching")
{
horizontal_size = room_width / background_get_width(argument0)
vertical_size = room_height / background_get_height(argument0)
draw_background_ext(argument0, 0, 0, horizontal_size, vertical_size, 0, c_white, 1)
}
else if(argument1 = "center")
{
draw_background_ext(argument0,
(room_width - background_get_width(argument0)) / 2,
(room_height - background_get_height(argument0)) / 2,
1, 1, 0, c_white, 1)
}
else if(argument1 = "pave")
{
horizontal_count = ceil(room_width / background_get_width(argument0))
vertical_count = ceil(room_height / background_get_height(argument0))
for(i = 0; i < horizontal_count; i += 1)
{
for(j = 0; j < vertical_count; j += 1)
{
draw_background_ext(argument0, i * background_get_width(argument0),
j * background_get_height(argument0), 1, 1, 0, c_white, 1)
}
}
}
Так же добавлю сюда то что позволяет менять
разрешение игры (вернее подгонит размер
комнаты под
разрешение монитора, для работы с
видами нужно немного изменить
код)
Создаём
комнату загрузки, в ней должен быть
объект, в
Create 
которого вызовем
скрипт:
//argument0 - имя комнаты для самого игрового процесса. Если этих комнат несколько и они меняются - надо вызвать скрипт для каждой
room_set_width(argument0, display_get_width()) //set resolution
room_set_height(argument0, display_get_height()) //width x height
После чего преходим в нужную комнату командой
room_goto(
имя_комнаты) или
room_goto_next().