Project1

标题: 万能的分辨率更改脚本 [打印本页]

作者: 仲秋启明    时间: 2010-6-20 13:25
标题: 万能的分辨率更改脚本
本帖最后由 仲秋启明 于 2010-7-7 11:02 编辑

原帖在DIYRPG发布

刚才看了海绵的680X480的VX示范包

但是只能改成680X480

这个脚本可以随意改动分辨率,会占用一点FTP
图片,对话不受影响,图片还是544X416的大小,屏幕中自动放大

  1. class Win32API
  2. GAME_INI_FILE = ".\\Game.ini"

  3. def Win32API.GetPrivateProfileString(section, key)
  4. val = "\0"*256
  5. gps = Win32API.new('kernel32', 'GetPrivateProfileString',%w(p p p p l p), 'l')
  6. gps.call(section, key, "", val, 256, GAME_INI_FILE)
  7. val.delete!("\0")
  8. return val
  9. end
  10. def Win32API.FindWindow(class_name, title)
  11. fw = Win32API.new('user32', 'FindWindow', %(p, p), 'i')
  12. hWnd = fw.call(class_name, title)
  13. return hWnd
  14. end
  15. HWND_TOP = 0
  16. HWND_TOPMOST = -1
  17. SWP_NOMOVE = 2

  18. def Win32API.SetWindowPos(hWnd, w, h)
  19. swp = Win32API.new('user32', 'SetWindowPos', %(l, l, i, i, i, i, i), 'i')
  20. ok = swp.call(hWnd, HWND_TOP, 0, 0, w, h, SWP_NOMOVE)
  21. return ok
  22. end
  23. end
  24. #以下是分辨率变更
  25. title = Win32API.GetPrivateProfileString("Game", "Title")
  26. hWnd = Win32API.FindWindow("RGSS Player", title)
  27. #使用时X轴加6,Y轴加25,否则画面会变形
  28. ok = Win32API.SetWindowPos(hWnd, 806, 625)
  29. if(ok == 0)
  30. p "失败"
  31. end
复制代码
默认脚本中改成了800X600

应DK的图片,给出我的范例工程 800×600.rar (238.74 KB, 下载次数: 1108)

作者: 马甲中の爪    时间: 2010-6-28 23:56
提示: 作者被禁止或删除 内容自动屏蔽
作者: zhangbanxian    时间: 2010-6-29 06:06
不错最好能让游戏窗口的左上角和屏幕左上角对齐,因为每次要去移动游戏窗口。 ...
马甲中の爪 发表于 2010-6-28 23:56

你可以把
  1. 22.ok = swp.call(hWnd, HWND_TOP, 0, 0, w, h, SWP_NOMOVE)
复制代码
改成
  1. ok = swp.call(hWnd, HWND_TOP, 120, 60, w, h, 0)
复制代码
ps:- -b话说原来的分辨率不是蛮好么,为啥要改,而且这个貌似只起到了拉伸作用,真想玩的时候谁会不用全屏...


作者: 越前リョーマ    时间: 2010-6-29 08:59
菜单什么的都不用重写,会自动放大来适应新分辨率?
作者: zhangbanxian    时间: 2010-6-29 12:16
菜单什么的都不用重写,会自动放大来适应新分辨率?
越前リョーマ 发表于 2010-6-29 08:59

囧,貌似这是rgss2的神奇功能,大概是适应了rgss2新的resize_screen功能,会自动适应窗口大小,放xp里就不行....



作者: 马甲中の爪    时间: 2010-6-29 23:32
提示: 作者被禁止或删除 内容自动屏蔽
作者: zh99998    时间: 2010-6-30 16:48
- -这哪是改分辨率,完全就是缩放嘛。。。
作者: 仲秋启明    时间: 2010-7-7 10:45
用到修改分辨率的人很少么?
作者: DeathKing    时间: 2010-7-7 10:53
本帖最后由 DeathKing 于 2010-7-7 10:55 编辑



不要用Win7的API不同于XP或Vista之类的说法来解释。
作者: 仲秋启明    时间: 2010-7-7 10:55
回复 DeathKing 的帖子

在我的电脑上没问题啊,我用的是VX1.02
   
作者: 仲秋启明    时间: 2010-7-7 11:03
回复 DeathKing 的帖子


    范例工程放出
作者: DeathKing    时间: 2010-7-7 11:07
俨然我不是API大人,Windows的闭源很恼火。




另:有紫苏一枚在附近活动,将它抓住。


可以请其他Vista/Win7用户测试是不是API的缘故,微软可能重构了使用到的函数。
作者: 水镜风生    时间: 2010-7-7 12:03
显然使用后画面会变得模糊,虽然情况并不严重……

LS的WINDOWS开源的话你想让微软去吃风么……
作者: zh99998    时间: 2010-7-7 13:35
不要用Win7的API不同于XP或Vista之类的说法来解释。
DeathKing 发表于 2010-7-7 10:53

我win7没事


作者: 沉影不器    时间: 2010-7-10 11:07
提示: 作者被禁止或删除 内容自动屏蔽
作者: 邱宁山    时间: 2010-7-10 19:07
提示: 作者被禁止或删除 内容自动屏蔽
作者: tester    时间: 2010-7-10 20:00
把背景涂黑!还有不要用findwindow,用GetActiveWindow
作者: 小闵    时间: 2010-7-11 02:30
那啥,我用是可以的,但只能放大一点,怎么样能放大全屏呢?
作者: Jousun    时间: 2010-9-12 00:25
面对不同分辨率的电脑,可以实现放大后打开自动居中画面就好咯
作者: 本圈圈本    时间: 2013-12-28 00:04
这个是个屏幕缩放脚本吧,被标题骗进来了
作者: chd114    时间: 2013-12-28 18:56
这个在XP上有效果吗?
作者: chd114    时间: 2013-12-28 18:56
这个在XP上有效果吗?
作者: chd114    时间: 2013-12-28 18:57
这个在XP上有效果吗?




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1