【gms2】关于视窗、全屏与游戏视图的问题
gamemaker吧
全部回复
仅看楼主
level 1
izayoisakuya 楼主
最近在研究让游戏全屏的事。
我现在的问题是:我希望能做一个在不同规格显示器上都能显示良好的游戏该怎么做?
比如我窗口模式是800x450分辨率,全屏之后文字的像素点会被拉伸(图片在更低分辨率会有这个问题),也就是说gms2的全屏会根据桌面分辨率来调整视窗尺寸?意思是说gms2只能做窗口最大化的游戏吗?
我研究了下摄像机手头倒是有一个解决方法:可以为窗口模式的分辨率和1080p这两种分辨率分别设置两组摄像机尺寸。但感觉这个办法治标不治本啊,万一我游戏做完的那一天2k或4k已经普及了怎么办qwq求教!
2018年03月29日 13点03分 1
level 10
.第一?这我也想问
2018年03月29日 13点03分 2
level 1
izayoisakuya 楼主
不过如果真的只能这样的话也不是不可以吧。只是想知道有没有办法让做出的游戏真正最大化显示而已嗯。
2018年03月29日 13点03分 4
level 13
百度怎么老删我贴?5楼都不见了……还是上图吧:
2018年03月29日 14点03分 6
level 9
2018年03月29日 15点03分 7
level 15
这个帖子怎么好像哪里见过。。。
就如6楼所说,基于位图的引擎是不可能在你放大的情况下不会变糊的。举个例子,你的屏幕是1920*1080像素,你的游戏窗口是800*600,这时候全屏,意味着800个像素点填充到1920个像素点里,必然会出现原来一个像素点的数据填充到多个像素点,造成模糊。另外那些大型游戏的多种分辨率配置都是内置的。
如果你的目的是做像泰拉瑞亚那样窗口越大能看到的东西越多的,的确按你说的调整摄像机可以解决,但这不用内置尺寸。可以用window_系列函数(不知道gms2里是否还是这个开头)来获取全屏后窗口大小(即屏幕分辨率)并调整摄像机范围。
2018年03月29日 16点03分 8
level 1
izayoisakuya 楼主
被删了一大堆贴……摆渡你好摆渡再见
QwQ 7楼我看过了,感谢科普。
现在问题分为两个来说好了
1、与其说我希望位图拉伸之后能不模糊,不如说我想知道gm能不能让进入游戏全屏的时候显示器分辨率根据游戏分辨率来调整。就好像以前的很多游戏那样?我说的所谓“窗口最大化”可能是一些游戏的设置里的说法,按我理解那个设置是游戏根据桌面分辨率来调整图形。而所谓“最大化”按我理解是屏幕根据游戏分辨率来自动调整屏幕分辨率。我想知道的是gm是只能做到前者吗?
2、我昨天想着如果上面问题的答案就是只能做到前者的情况的话就用调整摄像机的方法算了。结果我发现其实还是不能说解决问题了:视图端口设置1600*900,摄像机最初设置800*450。然后if窗口高度变成1080摄像机就设置成960*540。这样的话文字的像素就一切正常。但是同样的素材同样的room,初始视图端口设置成1366*768,摄像机最初设置成683*384,再“if窗口高度变成1080摄像机就设置成960*540”,文字的像素都乱的快看不清了...这又是为啥= -b。
2018年03月30日 01点03分 17
哇!用GM调整显示器分辨率……GM原版功能应该做不到了,除非有插件。调整摄像机大小后文字变成了啥样,有个截图看看?
2018年03月30日 07点03分
@人类的大敌 emmm,那就不强求了,只是确定一下=w=。我去截图...
2018年03月30日 08点03分
@人类的大敌 ...在默默等恢复帖子,直接被删了OTL。
2018年03月30日 13点03分
level 1
izayoisakuya 楼主
上截图Q_Q,我觉得应该是我有些地方写错了。
首先是全屏显示正常的,窗口模式分辨率为1600x900的情况。
//room Creation Code:
camera4 = camera_create_view(0, 0, 800, 450, 0, obj_playerMOVE, -1, -1, 32, 32);
//obj_permanent: Events_step:
view_set_camera(0,camera4)
if(window_get_height()=900){
camera_set_view_size(view_camera[0], 800, 450);
view_set_wport(0, 1600);
view_set_hport(0, 900);
}
if(window_get_height()>=1080){
camera_set_view_size(view_camera[0], 960, 540);
view_set_wport(0, 1920);
view_set_hport(0, 1080);
}
然后是是全屏下文字显示不正常的,窗口模式分辨率为1366x768的情况。
//room Creation Code:
camera4 = camera_create_view(0, 0, 683, 384, 0, obj_playerMOVE, -1, -1, 32, 32);
//obj_permanent: Events_step:
view_set_camera(0,camera4)
if(window_get_height()<=768){
camera_set_view_size(view_camera[0], 683, 384);
view_set_wport(0, 1366);
view_set_hport(0, 768);
}
if(window_get_height()>=1080){
camera_set_view_size(view_camera[0], 960, 540);
view_set_wport(0, 1920);
view_set_hport(0, 1080);
}
2018年03月30日 08点03分 18
这个……是字体大小的原因吧,试试把字体弄大一些?
2018年03月31日 08点03分
@人类的大敌 虽然可以试试,但你看第一组图很明显就没问题= -而且这两张全屏下的截图尺寸啥的是一样的耶。
2018年03月31日 09点03分
@人类的大敌 而且其实不只是文字,最下面这个图猛男角色身上很多像素点也变奇怪了,但是前一张就没事。
2018年03月31日 09点03分
啊……好难啊,我也不知道了,看看有没有其他人来回答吧
2018年03月31日 13点03分
level 1
izayoisakuya 楼主
早上说我放的图像素太低如果想在高分辨率下高清显示就不要这种程度的素材那位您真是够了,我把您回复删了还真是抱歉啊。我问的主要问题是文字出问题了好么?我上18号字还是该有问题照样有问题:
然后找了会儿资料以后,我好像把问题解决了,需要用到surface_resize这个功能...
既然我发代码会被秒删和等恢复,那就截图。
2018年04月01日 04点04分 22
测试了几下,确实解决了。感谢关注!
2018年04月01日 05点04分
1