| 赞 | 0  | 
 
| VIP | 8 | 
 
| 好人卡 | 27 | 
 
| 积分 | 66 | 
 
| 经验 | 41413 | 
 
| 最后登录 | 2012-10-21 | 
 
| 在线时间 | 833 小时 | 
 
 
 
 
 
Lv4.逐梦者 弓箭手?剑兰 
	- 梦石
 - 0 
 
        - 星屑
 - 6559 
 
        - 在线时间
 - 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的停顿写的不好,希望有人指正。 
 
欢迎讨论更多有关这问题的解决办法或思路。 |   
 
评分
- 
查看全部评分
 
 
 
 
 
 |