View GameMaker中的视图大小:工作室取决于第一个房间

View GameMaker中的视图大小:工作室取决于第一个房间,view,display,game-maker,gml,View,Display,Game Maker,Gml,我正在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(); r

我正在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的默认大小为1024x768,但其房间大小已被上述代码更改

当我将room_init的房间大小设置为1366x768(我的屏幕分辨率)时,在room_main中玩的游戏如下所示:

左上角的数字显示房间的大小(1366x768)

当我将room_init的房间大小设置为200x100时,在room_main中玩的游戏如下所示:

左上角的数字仍然是1366x768

我还检查了display_get_width()和display_get_height(),它们分别返回1366和768,而与room_init的房间大小无关


我查阅了GM:Studio用户手册,并在网上浏览了类似的问题。我找不到任何似乎有效的东西。任何帮助都将不胜感激。

有一种方法可以使分辨率实际上是动态的,因此它可以在游戏中更改

把你的房间叫做room_init。给它以下创建代码:room\u goto\u next()

现在,创建一个持久对象,并将其添加到步骤事件中:

view\u wview[0]=窗口获取宽度()

查看\u hview[0]=窗口获取高度()

查看\u wport[0]=查看\u wview[0]

查看\u hport[0]=查看\u hview[0]

view\u hborder[0]=view\u wview[0]/2

查看顺序[0]=查看视图[0]/2

这将使视图大小和端口大小等于窗口大小,视图边框等于视图大小除以2。这样,无论分辨率如何,对象都保持在中心

最后,将持久对象放入room_init中,每当您更改分辨率时,它都会更改


另外,您可能知道这一点,但值得一提的是,方括号中的数字代表视图,可以替换。

在第二个屏幕上,窗口是覆盖您的所有屏幕还是仅覆盖一个200x100像素的矩形?当我全屏启动游戏时,它覆盖了我的整个屏幕。当我在全屏关闭的情况下启动时,窗口覆盖了我的所有屏幕,但这次启动窗口是200x100。谢谢!我稍后会试试这个