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

Project1

 找回密码
 注册会员
搜索
楼主: 沉影不器
打印 上一主题 下一主题

[RMVX发布] [vx]鼠标系统 1楼无DLLl,2楼依赖DLL(2010-09-23更新)

  [复制链接]

Lv1.梦旅人

梦石
0
星屑
75
在线时间
26 小时
注册时间
2009-11-27
帖子
156
11
发表于 2010-8-11 19:25:19 | 只看该作者
支持,新鼠标看起来不错。

==================分割线==================
坚决不做伸手党。
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

12
 楼主| 发表于 2010-8-14 10:21:15 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
帖子
1924
13
发表于 2010-8-14 12:46:10 | 只看该作者
本帖最后由 紫苏 于 2010-8-14 12:48 编辑

回复 沉影不器 的帖子
但作者给 press? 写的注释里确实说的是 down? 的功能 ><
#   Mouse.press?
#   This returns a true/false value  when you test  whether a button is pressed
#   and kept depressed.  The values you pass are 1 (for the left mouse button),
#   2 (for the right mouse button), or 3 (for the middle).
我觉着吧就是她/他没仔细看说明文档或者一时疏忽了,如果想做切换的功能可能把方法命名为 toggled? 更合适

zh 判断的 > 1,原意应该是想只判断 down?,不判断 toggled?,按常理来想这么做也确实可行,因为 GetKeyState 返回的是 16 位整数,而 Ruby 是 31 位整数,无论 GetKeyState 的返回值怎么变,直接拷贝数据到 31 位整数里的话,应该都不会影响 31 位整数的符号位,所以一旦 16 位整数的最高位被设为了 1,整个整数必然 > 1;但实际测试了下,GetKeyState 返回的数有时是负的,有时不是,是负的时候刚好是 16 位整数最高位为 1 时所表示的那个负数,说明这里有符号扩展,影响了 31 位整数的符号位,也应该是柳柳那个问题的来源。最不会有问题的办法自然还是与上 0x8000 再判断 != 0 了

在 Ruby 里 GetMessage 确实不好,因为 Graphics.update 也在同时处理消息,游戏一帧之间 Ruby 脚本可能只调用一次 GetMessage(一帧之间多次调用 GetMessage 的话,不知道什么时候该停止),而 Graphics.update 却不止,两帧之间的程序空闲时间足够调用成百上千次 GetMessage 了,当队列比较长时,可能大部分消息会被 Graphics.update 抢走
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

14
 楼主| 发表于 2010-8-14 20:51:32 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
帖子
1924
15
发表于 2010-8-15 09:14:01 | 只看该作者
回复 沉影不器 的帖子

>_< 说错了,我的意思是 Graphics.update 一帧一次,但期间这厮可能已经处理了成百上千个消息了
现在基本上可以确定 Graphics.update 是处理 RM 窗口消息的过程,由于 RM 需要锁帧,所以 Graphics.update 每帧会至多占用主线程 (1000/fps) 毫秒的 CPU 时间,特别是在配置高的机器上,假设游戏是 60 fps,最好的情况下游戏高层逻辑只需要 1 毫秒来完成,那 Graphics.update 每帧都有  (1000-1)/60,将近 17 毫秒的时间来处理各种消息
所以理论上来说 fps 越高,Graphics.update 得到的时间就越少,Ruby 抢占消息的赢面就更大……但这样做同时也增加了 CPU 负荷……|||

沉影闲下来了可以试试用夏娜的思路做一个,不必用到系统钩子,仅仅替换窗口过程~

点评

经您一提,貌似确实见过有人讨论过Graphics.update可能是独立线程...搞了中午窗体消息,全无进展...  发表于 2010-8-15 21:26
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2010-8-12
帖子
27
16
发表于 2010-8-15 14:05:43 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

17
 楼主| 发表于 2010-8-15 21:14:32 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

18
 楼主| 发表于 2010-8-15 21:30:16 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

19
 楼主| 发表于 2010-8-15 21:31:46 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

20
 楼主| 发表于 2010-8-15 21:33:31 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-21 20:28

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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