赞 | 0 |
VIP | 8 |
好人卡 | 27 |
积分 | 57 |
经验 | 41413 |
最后登录 | 2012-10-21 |
在线时间 | 833 小时 |
Lv4.逐梦者 弓箭手?剑兰
- 梦石
- 0
- 星屑
- 5729
- 在线时间
- 833 小时
- 注册时间
- 2010-11-17
- 帖子
- 1140
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 一箭烂YiJL 于 2011-4-11 20:19 编辑
0.序
嗯~潜在问题,用Graphics.resize_screen这个函数来修改的游戏应该都会有。
(欢迎各位试一下会否出现此问题。)我在想着这个会是VX的bug?
虽然(画面)分辨率的确大了,但是窗体没大,所以看不清楚,
除此之外,还会令鼠标系统变得诡异。
1.楸出问题所在- 脚本里写下Graphics.resize_screen(640, 480)
- 开启游戏,马上狂按最小化按钮,直至窗口最小化为止。
- 过一阵子把窗口最大化,就会发现(用柳柳的姜太公的小岛做宣传对象):
如果不会弄以上的,二楼提供了一个用脚本楸出问题的办法。
正常的(请按一下图片放大至1比1后才做比较):
如果不相信者可以自己开新工程试,或者对照上图的窗口边的大小。
这种情况会发生在忙于弄其他窗口的玩家身上。
虽然分辨率的确大了,但是窗体没大,所以看不清楚,看不仔细。
除此之外,鼠标系统这种平面视觉都会很诡异!!!。
2.解决办法
先要统一使用紫苏大人的精准获取窗口句柄,请复制其中的脚本。然后才能用:
A.直接的方法——在改分辨率前强制最大化:
- $window_width = 640 # 设置的长度
- $window_height = 480 # 设置的高度
- hWnd = get_hWnd
- ShowWindow = Win32API.new("user32", "ShowWindow", "ll", "l")
- ShowWindow.call(hWnd, 9)
- Graphics.resize_screen($window_width, $window_height)
复制代码 这个方法可能会有碍游戏给人的好感。
B.婉转的方法——不断的改直到有效- $window_width = 640 # 设置的长度
- $window_height = 480 # 设置的高度
- hWnd = get_hWnd
- GetClientRect = Win32API.new("user32", "GetClientRect", "lp", "l")
- rect = [0,0,0,0].pack("l4")
- while rect.unpack("l4")[2,3] != [$window_width, $window_height]
- Graphics.resize_screen(544, 416)
- Graphics.resize_screen($window_width, $window_height)
- GetClientRect.call(hWnd, rect)
- end
复制代码 这样的好处就是在最大化的时候才真正改动,不用强制启动窗口。
C.更婉转的方法——面对着窗口的时候才会改:- $window_width = 640 # 设置的长度
- $window_height = 480 # 设置的高度
- hWnd = get_hWnd
- IsIconic = Win32API.new("user32", "IsIconic", "l", "l")
- while IsIconic.call(hWnd) != 0
- end
- Graphics.resize_screen($window_width, $window_height)
复制代码 这办法比以上二种都要好,但是关于while的停顿写的不好,希望有人指正。
欢迎讨论更多有关这问题的解决办法或思路。 |
评分
-
查看全部评分
|