设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1420|回复: 5
打印 上一主题 下一主题

[已经解决] 分辨率代码,求解释

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
15 小时
注册时间
2013-8-19
帖子
9
跳转到指定楼层
1
发表于 2013-8-21 11:31:46 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
宽度 = 800
高度 = 600
get_hWnd = Win32API.new('user32', 'GetActiveWindow',nil,'l')
$hWnd = get_hWnd.call()
get_x_and_y = Win32API.new('user32', 'GetSystemMetrics', 'l','l')
x = get_x_and_y.call(0)
y = get_x_and_y.call(1)
set_window_pos = Win32API.new('user32', 'SetWindowPos', 'lliiiii',nil)
set_window_pos.call($hWnd, 0, (x-宽度)/2,(y-高度)/2, 宽度, 高度,0)
这代码,哪位大神解释一下。




试过只是复制
宽度 = 800
高度 = 600
没效果,求解释


Lv1.梦旅人

梦石
0
星屑
50
在线时间
15 小时
注册时间
2013-8-19
帖子
9
6
 楼主| 发表于 2013-8-21 16:14:49 | 只看该作者
铃仙·优昙华院·因幡 发表于 2013-8-21 15:52
你只是定义了两个变量而已. 至于这两个值你需要怎么用, 这写都要告诉 RM . 不然一个 800 一个 600 的数值 ...

懂。谢谢
回复 支持 反对

使用道具 举报

Lv2.观梦者

狂気の月兔

梦石
0
星屑
256
在线时间
1245 小时
注册时间
2009-4-7
帖子
879

贵宾

5
发表于 2013-8-21 15:52:42 | 只看该作者
418280852 发表于 2013-8-21 15:36
赋值,那为什么,我在脚本那里只打这2局没效果?
是因为什么rm窗口  管理员权限问题?
...

你只是定义了两个变量而已. 至于这两个值你需要怎么用, 这写都要告诉 RM . 不然一个 800 一个 600 的数值, 也许是窗口尺寸, 但是也能理解成图片的尺寸啊.
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
15 小时
注册时间
2013-8-19
帖子
9
4
 楼主| 发表于 2013-8-21 15:36:52 | 只看该作者
satgo1546 发表于 2013-8-21 15:24
只是用来把“宽度”和“高度”变量赋值而已,跟分辨率无关。所以真心不喜欢变量名是中文啊……很容易误导新 ...

赋值,那为什么,我在脚本那里只打这2局没效果?
是因为什么rm窗口  管理员权限问题?
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
555
在线时间
1286 小时
注册时间
2011-6-14
帖子
4086
3
发表于 2013-8-21 15:24:15 | 只看该作者
  1. 宽度 = 800
  2. 高度 = 600
复制代码
只是用来把“宽度”和“高度”变量赋值而已,跟分辨率无关。所以真心不喜欢变量名是中文啊……很容易误导新手……

点评

这段代码的作者好像是火星论坛的某某?忘记了。因为作者是这样写的,LZ只是复制过来提问,并非LZ私自改的。  发表于 2013-8-27 10:56
↓ ……?  发表于 2013-8-27 10:50
因为代码原作者就是这样写的。  发表于 2013-8-27 10:49
回复 支持 反对

使用道具 举报

Lv2.观梦者

狂気の月兔

梦石
0
星屑
256
在线时间
1245 小时
注册时间
2009-4-7
帖子
879

贵宾

2
发表于 2013-8-21 14:38:03 | 只看该作者
本帖最后由 protosssonny 于 2013-8-27 10:51 编辑
  1. 宽度 = 800
  2. 高度 = 600

  3. get_hWnd = Win32API.new('user32', 'GetActiveWindow',nil,'l')
  4. $hWnd = get_hWnd.call()
  5. # 以上两句其实是通过API "GetActiveWindow" 获取 RM 窗口的句柄. 这个句柄你可以理解成获取可以随便推倒 RM窗口 的管理员权限.

  6. get_x_and_y = Win32API.new('user32', 'GetSystemMetrics', 'l','l')
  7. x = get_x_and_y.call(0)
  8. y = get_x_and_y.call(1)
  9. # 接着调用 GetSystemMetrics 这个 API 获取玩家当前屏幕分辨率的宽高. x 就是宽度, y 是高度. 比如你的屏幕分辨率是 1366 * 768. 那么这里的 x 就是 1366, y 是 768.

  10. set_window_pos = Win32API.new('user32', 'SetWindowPos', 'lliiiii',nil)
  11. set_window_pos.call($hWnd, 0, (x-宽度)/2,(y-高度)/2, 宽度, 高度,0)
  12. # 最后是利用 RM的窗口句柄(也就是管理员权限) 去修改 RM窗口 的位置以及宽高.
复制代码

点评

只是 C 风格的注释罢了. 最近写 C# 写习惯了 = =. 所以不要在意细节.  发表于 2013-8-21 15:23
0.0发现ruby新注释“//”!  发表于 2013-8-21 15:16

评分

参与人数 1星屑 +150 收起 理由
怪蜀黍 + 150 精品解读

查看全部评分

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-9-25 06:29

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表