Project1

标题: 扩展RMXP的分辨率,除了拼接4个Viewport外,还有别的方法吗? [打印本页]

作者: ky52879    时间: 2013-8-29 12:12
标题: 扩展RMXP的分辨率,除了拼接4个Viewport外,还有别的方法吗?
各位大大,小弟想请教下:扩展RMXP的分辨率,除了拼接3个Viewport外,还有别的方法吗?

目前我是用拼接4个Viewport来解决的,但是这样毕竟不怎么好,所以想请教下,还有别的好方法吗?

@viewport1 = Viewport.new(0, 0, 640, 480)
@viewport2 = Viewport.new(640, 0, 800 - 640, 480)
@viewport3 = Viewport.new(0, 480, 640, 600 - 480)
@viewport4 = Viewport.new(640, 480, 800 - 640, 600 - 480)
作者: satgo1546    时间: 2013-8-29 12:47
为什么要4个Viewport,扩展分辨率和Viewport没关系吧= =
Viewport改大直接@viewport1 = Viewport.new(0, 0, 800, 600)算了。
作者: 羞射了    时间: 2013-8-29 12:48
只是渐变、球面、图块等内建模块是限制640x480大小这样而已,不要用到这些模块不就完了,其他地方又没限制大小。
作者: ky52879    时间: 2013-8-29 17:26
不不不,地图的map_data锁定了640*480,没办法啊。。。估计是别的模块干的好事
作者: orzfly    时间: 2013-8-29 17:30
ky52879 发表于 2013-8-29 17:26
不不不,地图的map_data锁定了640*480,没办法啊。。。估计是别的模块干的好事 ...


的确,通过修改 DLL 的方法,包括在 @fux2 的众多大触努力下,也没找到 Tilemap 高度的破解办法,只解决了宽度……

所以这方法其实也没啥使用价值……
作者: ky52879    时间: 2013-8-29 17:33
orzfly 发表于 2013-8-29 17:30
的确,通过修改 DLL 的方法,包括在 @fux2 的众多大触努力下,也没找到 Tilemap 高度的破解办法,只解决 ...

解决了宽度??哇,至少有进展啊,能否贴出来让我们学习下呢?

PS:如果是DLL的话,就别贴了,估计看懂的人不多 - -
作者: 你欠抽吧    时间: 2013-8-29 17:34
本帖最后由 你欠抽吧 于 2013-8-29 17:40 编辑

  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #==============================================================================
  4. # ————————————————————————————————————
  5. # 本脚本来自www.66rpg.com,转载请保留此信息
  6. # ————————————————————————————————————

  7. #ウィンドウサイズの変更(v1.00)

  8. class Win32API
  9.   GAME_INI_FILE = ".\\Game.ini"
  10.   
  11.   def Win32API.GetPrivateProfileString(section, key)
  12.     val = "\0"*256
  13.     gps = Win32API.new('kernel32', 'GetPrivateProfileString',%w(p p p p l p), 'l')
  14.     gps.call(section, key, "", val, 256, GAME_INI_FILE)
  15.     val.delete!("\0")
  16.     return val
  17.   end

  18.   def Win32API.FindWindow(class_name, title)
  19.     fw = Win32API.new('user32', 'FindWindow', %(p, p), 'i')
  20.     hWnd = fw.call(class_name, title)
  21.     return hWnd
  22.   end

  23.   HWND_TOP     = 0
  24.   HWND_TOPMOST = -1
  25.   SWP_NOMOVE   = 2
  26.   
  27.   def Win32API.SetWindowPos(hWnd, w, h)
  28.     swp = Win32API.new('user32', 'SetWindowPos', %(l, l, i, i, i, i, i), 'i')
  29.     ok = swp.call(hWnd, HWND_TOP, 0, 0, w, h, SWP_NOMOVE)
  30.     # 下の行を有効にすると、常に前面に表示されるウィンドウになる。
  31.     #ok = swp.call(hWnd, HWND_TOPMOST, 0, 0, w, h, SWP_NOMOVE)
  32.     return ok
  33.   end
  34. end

  35. title =  Win32API.GetPrivateProfileString("Game", "Title")
  36. hWnd = Win32API.FindWindow("RGSS Player", title)

  37. # 幅320、高さ480に変更
  38. ok = Win32API.SetWindowPos(hWnd, 320, 480)
  39. if(ok == 0)
  40.   p "サイズ変更失敗"
  41. end
  42. #==============================================================================
  43. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  44. #==============================================================================
复制代码
最后的320和480,自己改
来源http://rpg.blue/forum.php?mod=viewthread&tid=159577

                                                                 ——此回复不可行
作者: ky52879    时间: 2013-8-29 17:36
你欠抽吧 发表于 2013-8-29 17:34
最后的320和480,自己改
来源http://rpg.blue/forum.php?mod=viewthread&tid=159577

晕。。。这个脚本只不过是修改了屏幕的大小而已,但是地图的大小并不会变的。。

PS:利用API改变窗口大小很简单,但是问题是地图大小应该怎么做?而且用Game.ini来判断窗口很不好- -
作者: 你欠抽吧    时间: 2013-8-29 17:42
ky52879 发表于 2013-8-29 17:36
晕。。。这个脚本只不过是修改了屏幕的大小而已,但是地图的大小并不会变的。。

PS:利用API改变窗口大 ...

那就是我理解问题……
作者: 紫英晓狼1130    时间: 2013-8-29 17:48
紫苏曾经写过修改游戏窗口大小的脚本,需要修改Game.ini同时要添加一些dll
但是我尝试过修改窗口大小,只修改了窗口分辨率,其他的还是640*480的

作者: y967    时间: 2013-8-29 18:18
这只不过是做小游戏,不用这么折腾吧,我还看到有人把网游的东西搬进来,我实在好笑




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