Размер просмотра в GameMaker: Студия зависит от первой комнаты

Я делаю игру в GameMaker: Studio. Я пытаюсь автоматически установить размер просмотра игры в соответствии с текущим разрешением экрана компьютера.

У меня есть комната инициализации с именем room_init. Он содержит следующий код в начале игры:

///Initialisation Room

//Get size of screen and set size and view of room_main
global.display_w = display_get_width();
global.display_h = display_get_height();
room_set_width(room_main,global.display_w);
room_set_height(room_main,global.display_h);
room_set_view(room_main,0,true,0,0,global.display_w,global.display_h,0,0,global.display_w,global.display_h,0,0,0,0,noone);
window_set_size(global.display_w,global.display_h);

//Go to next room
room_goto_next();

Следующая комната — room_main, где проходит игра. room_main имеет размер по умолчанию 1024x768, но размер его комнаты изменяется приведенным выше кодом.

Когда я установил размер комнаты room_init на 1366x768 (мое разрешение экрана), игра в room_main выглядит так:

введите здесь описание изображения Цифры в верхнем левом углу показывают размер room_main (1366x768).

Когда я устанавливаю размер комнаты room_init на 200x100, игра в room_main выглядит так:

введите здесь описание изображения Числа в левом верхнем углу по-прежнему читаются как 1366x768.

Я также проверил display_get_width() и display_get_height(), и они возвращают 1366 и 768 соответственно, независимо от размера комнаты room_init.

Я просмотрел руководство пользователя GM: Studio и поискал в Интернете похожие вопросы. Я не могу найти ничего, что кажется работающим. Любая помощь будет принята с благодарностью.


person J. Malcolm    schedule 21.06.2016    source источник
comment
На втором скриншоте окно закрывает весь экран или только прямоугольник размером 200x100 пикселей?   -  person An intern has no name    schedule 21.06.2016
comment
Он охватывает весь мой экран, когда я запускаю игру в полноэкранном режиме. Когда я запускаю его с выключенным полноэкранным режимом, окно точно так же закрывает весь мой экран, но на этот раз окно-заставка имеет размер 200x100.   -  person J. Malcolm    schedule 21.06.2016


Ответы (1)


Есть способ сделать разрешение динамическим, чтобы его можно было менять в игре.

Держите свою комнату под названием room_init. Дайте ему этот код создания: room_goto_next()

Теперь создайте постоянный объект и просто добавьте это в его шаговое событие:

view_wview[0] = window_get_width()

view_hview[0] = window_get_height()

view_wport[0] = view_wview[0]

view_hport[0] = view_hview[0]

view_hborder[0] = view_wview[0] / 2;

view_vborder[0] = view_hview[0] / 2;

Это сделает размер представления и размер порта равным размеру окна, а граница представления будет равна размеру представления, деленному на два. Таким образом, ваш объект остается в центре, независимо от разрешения.

Наконец, поместите постоянный объект в room_init, и он будет меняться всякий раз, когда вы меняете разрешение.

Кроме того, вы, вероятно, знаете это, но стоит упомянуть, что эти числа в квадратных скобках представляют вид и могут быть заменены.

person Super Space Hero    schedule 21.06.2016
comment
Спасибо! Я попробую это через некоторое время - person J. Malcolm; 22.06.2016