Project1

标题: 请问怎么修改游戏屏幕大小? [打印本页]

作者: 水の都    时间: 2009-2-9 05:42
标题: 请问怎么修改游戏屏幕大小?
或者告诉我游戏屏幕的大小我重图片上修改 [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: hulobo888    时间: 2009-2-9 05:49
提示: 作者被禁止或删除 内容自动屏蔽
作者: 天下·无敌    时间: 2009-2-9 05:51
在RMXP里面,窗口状态下默认的大小是:640*480;全屏状态下的大小则是1024*768。
作者: 水の都    时间: 2009-2-9 05:53
那有办法修改吗...图放大了不好看
作者: hulobo888    时间: 2009-2-9 05:58
提示: 作者被禁止或删除 内容自动屏蔽
作者: 塑望    时间: 2009-2-9 05:58
  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #==============================================================================

  4. unless $keybd
  5.    $keybd = Win32API.new 'user32.dll', 'keybd_event', ['i', 'i', 'l', 'l'], 'v'
  6.    $keybd.call 0xA4, 0, 0, 0
  7.    $keybd.call 13, 0, 0, 0
  8.    $keybd.call 13, 0, 2, 0
  9.    $keybd.call 0xA4, 0, 2, 0
  10. end

  11. #==============================================================================
  12. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  13. #==============================================================================
复制代码

作者: hulobo888    时间: 2009-2-9 06:01
提示: 作者被禁止或删除 内容自动屏蔽
作者: 水の都    时间: 2009-2-9 06:07
#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================

unless $keybd
   $keybd = Win32API.new 'user32.dll', 'keybd_event', ['i', 'i', 'l', 'l'], 'v'
   $keybd.call 0xA4, 0, 0, 0
   $keybd.call 13, 0, 0, 0
   $keybd.call 13, 0, 2, 0
   $keybd.call 0xA4, 0, 2, 0
end

#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================


应该放哪
作者: 最後一滴淚    时间: 2009-2-9 06:11
  1. if $myfirst == nil

  2.   $myfirst = 'myGod'  
  3.   宽度=800
  4.   高度=600
  5.   游戏ini名=".\\Game.ini"
  6.   val = "\0"*256
  7.   gps = Win32API.new('kernel32', 'GetPrivateProfileString','pppplp', 'l')
  8.   gps.call("Game", "Title", "", val, 256, 游戏ini名)
  9.   val.delete!("\0")
  10.   title = val
  11.   fw = Win32API.new('user32', 'FindWindow', 'pp', 'i')
  12.   hWnd = fw.call("RGSS Player", title)
  13.   swp = Win32API.new('user32', 'SetWindowPos', 'lliiiii', 'i')

  14.   pointwds = [0,0,0,0].pack('llll')
  15.   pointcet = [0, 0].pack('ll')

  16.   wdsrect = Win32API.new('user32.dll', 'GetWindowRect', 'lp', 'l')
  17.   client_screen = Win32API.new("user32", "ClientToScreen", 'ip', 'i')

  18.   wdsrect.call(hWnd,pointwds)
  19.   client_screen.call(hWnd, pointcet)

  20.   wds = pointwds.unpack('llll')
  21.   cet = pointcet.unpack('ll')

  22.   addw =  wds[2] - wds[0] - 640
  23.   addh =  wds[3] - wds[1] - 480

  24.   x = wds[0] - (宽度 - 640) / 2
  25.   y = wds[1] - (高度 - 480) / 2

  26.   swp.call(hWnd, 0, x, y, 宽度 + addw, 高度 + addh, 0x20)
  27.   
  28. end
复制代码

作者: 塑望    时间: 2009-2-9 06:13
以下引用水の都于2009-2-8 22:07:59的发言:

#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================

unless $keybd
  $keybd = Win32API.new 'user32.dll', 'keybd_event', ['i', 'i', 'l', 'l'], 'v'
  $keybd.call 0xA4, 0, 0, 0
  $keybd.call 13, 0, 0, 0
  $keybd.call 13, 0, 2, 0
  $keybd.call 0xA4, 0, 2, 0
end

#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================


应该放哪


工程里按F11  脚本编辑器 右键插入,然后粘贴该脚本 运行游戏
作者: 水の都    时间: 2009-2-9 06:24
我不要是全屏啊...我是想自己修改大小
作者: 塑望    时间: 2009-2-9 06:27
  1. class Win32API
  2.   GAME_INI_FILE = ".\\Game.ini"
  3.   
  4.   def Win32API.GetPrivateProfileString(section, key)
  5.     val = "\0"*256
  6.     gps = Win32API.new('kernel32', 'GetPrivateProfileString',%w(p p p p l p), 'l')
  7.     gps.call(section, key, "", val, 256, GAME_INI_FILE)
  8.     val.delete!("\0")
  9.     return val
  10.   end

  11.   def Win32API.FindWindow(class_name, title)
  12.     fw = Win32API.new('user32', 'FindWindow', %(p, p), 'i')
  13.     hWnd = fw.call(class_name, title)
  14.     return hWnd
  15.   end

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

  28. title =  Win32API.GetPrivateProfileString("Game", "Title")
  29. hWnd = Win32API.FindWindow("RGSS Player", title)

  30. # 幅320、高さ480に変更
  31. ok = Win32API.SetWindowPos(hWnd, 320, 480)
  32. if(ok == 0)
  33.   p "サイズ変更失敗"
  34. end

复制代码


修改这里数字即可ok = Win32API.SetWindowPos(hWnd, 320, 480) [LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~




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