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

Project1

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

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

  [复制链接]

Lv1.梦旅人

66RPG站长

梦石
0
星屑
54
在线时间
615 小时
注册时间
2005-10-10
帖子
5734

RMVX自由创作大赛亚军第2届短篇游戏比赛亚军第5届短篇游戏比赛冠军

51
发表于 2010-9-11 05:50:39 | 只看该作者
唔,在《格斗纹章》中经过大量测试证明,本鼠标系统(dll的)有这么几个缺点:

1、在有一定几率情况下,无法随游戏启动。鼠标在窗口上没有反应,即使按F12也没用。感觉这种几率在2%-3%之间,我是用RMVX直接运行,不是点game.exe,大部分出现这种bug的情况时我同时在干N件事,比如启动游戏,在游戏还没起来的时候QQ和人说话去了。不知有没有影响。

2、滚轮很好用,非常好用,但是其他方面灵敏度比API版本的低,低多了。我个人推测是在click?上的判断比较严格。实际上是这样,原来API那个版本灵敏过度,click?经常会连续两帧判定成立,我当时处理方法是在scene中用逻辑判定两次click?成立之间间隔不小一定帧数;但是换了这个dll版本之后,出现的问题是有一些操作很快的情况下鼠标的点击相应无效,特别是在我用左键拖拽一个角色到某位置之后按右键点击切换技能的时候,经常无效。还有连击的时候,我总觉的N次连击时屏幕反应的次数和我点击的次数不一样。可能是左键按下的时候,无法判断右键是否click?了?

大概就是这么两个问题,都很严重,尤其是第二个,对于动作型要求高的游戏来说有点影响体验。
另外有一个可能不算bug的东西,可以干掉另外一个有问题的脚本中的bug……不提也罢。
期待更新的版本,呵呵

对了,另外闲扯一句。
我觉得真能用好这个鼠标的人,八成是不会使用默认的那些系统的吧……

点评

我给加了个Mouse.trigger?(key),是按下这个动作的绝对情况,也判断了左右键互换的情况(紫苏提的bug)...那个挂不上鼠标的情况还需要继续测试,我真弄不出来...=.=   发表于 2010-9-11 22:57
唔,看了一下前面紫苏有关技术上的解释……看不懂,所以我只说体验感受了。  发表于 2010-9-11 06:00
回复 支持 反对

使用道具 举报

Lv1.梦旅人

战国美少年森兰丸

梦石
0
星屑
204
在线时间
852 小时
注册时间
2008-7-20
帖子
3705
52
发表于 2010-9-11 05:59:47 | 只看该作者
LS是柳大,兴奋唉~话说鼠标什么的,我觉得我还用不上,而且拖累系统

点评

有啥兴奋的,我最近这么活跃……  发表于 2010-9-11 07:07
回复 支持 反对

使用道具 举报

Lv1.梦旅人

66RPG站长

梦石
0
星屑
54
在线时间
615 小时
注册时间
2005-10-10
帖子
5734

RMVX自由创作大赛亚军第2届短篇游戏比赛亚军第5届短篇游戏比赛冠军

53
发表于 2010-9-11 06:13:07 | 只看该作者
哦哦,发帖过程中逐渐明白怎么回事了,测了一下果然如此:
应该是被脚本判断为“双击”的第二下点击,没有算到down?里面。
以前脚本是这样(手感差):
if Mouse.click?(2)

现在脚本是这样(手感正确):
if Mouse.click?(2) or Mouse.dbl_clk?(2)

那啥,能告诉我怎么关闭双击功能么?或者要我说,建议直接取消双击功能吧,我觉得好像没有哪个游戏里面用过双击吧……真要用的话,在scene里面写个小判断轻易就做到同样效果了。

真的建议取消
真建议取消
建议取消
取消
消……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
554 小时
注册时间
2007-6-25
帖子
1188
54
发表于 2010-9-11 08:14:24 | 只看该作者
柳大的回音第二行MS错了=w=
好吧我只是来吐槽的
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

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

第1届Title华丽大赛新人奖

55
 楼主| 发表于 2010-9-11 20:59:53 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
帖子
1924
56
发表于 2010-9-13 07:06:53 | 只看该作者
感觉所有消息都用状态判断怪怪的,突发性事件还是通过给每个场景分配一个 Proc 实现回调机制吧……(特指滚轮和 WM_*BUTTONUP)

柳柳的问题可能是这样:
每处理一个消息都会调用一次 DLL 里的窗口过程函数,所谓“每个”是指每次 SendMessage 或消息循环内部的 DispatchMessage 的调用。当 Graphics.update 调用时,Ruby 解释器的线程就把执行权让给了消息循环所在的线程,开始进行消息循环,而太快结束的鼠标按下和弹起过程,可能在 Graphics.update 返回之前就处理完了,而这时状态已经由 0 变为 1 又变回了 0,所以虽然点击了鼠标却没有响应,因为返回到 Ruby 层的时候状态已经是 0
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

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

第1届Title华丽大赛新人奖

57
 楼主| 发表于 2010-9-15 22:06:51 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
帖子
1924
58
发表于 2010-9-16 05:57:17 | 只看该作者
本帖最后由 紫苏 于 2010-9-16 05:59 编辑

回复 沉影不器 的帖子

http://msdn.microsoft.com/en-us/library/aa931259.aspx
(虽然是 CE 的,但应该和 NT 没区别,没测试……)

up 似乎是有的,只是第三步的 down 换成了dbclk,那在处理这个消息时也让 down 状态过渡到 1 就好了
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

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

第1届Title华丽大赛新人奖

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

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
帖子
1924
60
发表于 2010-9-18 05:53:22 | 只看该作者
回复 沉影不器 的帖子

就是把 dbclk 处理为双击事件的同时也当做 down 处理,让 down 的状态变为 1

这篇文章应该是用于 .NET 的,不过确实和 CE 那篇描述的没有出入
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-22 10:47

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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