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

Project1

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

[已经过期] 求大家推荐一个比较灵敏的鼠标系统核心

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
246 小时
注册时间
2008-8-6
帖子
99
跳转到指定楼层
1
发表于 2011-7-29 22:04:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 风缘 于 2011-7-29 23:16 编辑

我现在用 沉影不器 的 鼠标核心(dll 版),我在写精灵的拖曳功能时,发现当快速拖曳时,Mouse.down? Mouse.up? 有时会不配对。(一般情况下 up 比 down 多)这对拖曳的开始和终止判断有些影响(我不想费精力写纠错逻辑了)。大家有没有更灵敏的鼠标核心推荐?我只要求核心部分就可以了,但要求有灵敏度保证(也就是说鼠标按键传递的误差率比较低)。

不拖曳快速点击松开的时候正常,拖曳时快速点击松开会出现不配对

先给出简化后的测试代码
  1.   until (Input.press?(Input::B))

  2.     Graphics.update
  3.     Input.update
  4.     Mouse.update

  5.     STDOUT << "up\n" if Mouse.up?(Mouse::LKEY)
  6.     STDOUT << "down\n" if Mouse.down?(Mouse::LKEY)

  7.   end
复制代码
查看输出结果的命令行
  1. ruby -e '$stdout.reopen("stdout.txt");$stdout.sy
  2. nc=true;system "game"'
复制代码
沉影不器鼠标核心的帖子  
我使用的是 dll 版,下载地址在这里

评分

参与人数 1星屑 +1000 收起 理由
「旅」 + 1000 返回积分~

查看全部评分

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
42877
在线时间
7625 小时
注册时间
2009-7-6
帖子
13506

开拓者贵宾

2
发表于 2011-7-29 22:08:43 | 只看该作者
up比down多乃是神么,你不松鼠标down两下给我看看.
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
246 小时
注册时间
2008-8-6
帖子
99
3
 楼主| 发表于 2011-7-29 22:14:18 | 只看该作者
下面给出拖曳代码以及某次运行的输出
  1.     def update
  2.       if CGSSConfig.in_dev?
  3.         endDragging if Mouse.pos == nil # 移出游戏窗口外也算放下
  4.         if Mouse.down?(Mouse::LKEY)
  5.           # 寻找第一个被拖住的层
  6.           layer = @layers.find {|layer| Mouse.area?(layer.x,layer.y,layer.width,layer.height)}
  7.           beginDragging(layer) if (layer !=nil)
  8.           STDERR << "down\n"
  9.         elsif Mouse.up?(Mouse::LKEY)
  10.           endDragging
  11.           STDERR << "up\n"
  12.         elsif Mouse.press?(Mouse::LKEY)
  13.           if self.dragging? # 正在拖动
  14.             @draggingLayer.x += Mouse.pos[0] - @lastMousePos[0]
  15.             @draggingLayer.y += Mouse.pos[1] - @lastMousePos[1]
  16.           end
  17.         else
  18.           endDragging
  19.         end
  20.         @lastMousePos = Mouse.pos
  21.       end
  22.     end

  23.     def beginDragging(layer)
  24.       self.dragging = true
  25.       @draggingLayer = layer
  26.     end

  27.     def endDragging
  28.       self.dragging = false
  29.       @draggingLayer = nil
  30.     end
复制代码
  1. down
  2. up
  3. down
  4. up
  5. down
  6. down
  7. down
  8. down
  9. up
  10. down
  11. down
  12. down
  13. down
  14. down
  15. up
  16. down
  17. up
  18. up
  19. down
  20. down
  21. down
  22. up
  23. down
  24. up
  25. up
  26. down
  27. up
  28. up
  29. up
  30. down
  31. up
  32. down
  33. down
  34. up
  35. up
  36. down
  37. up
  38. down
  39. up
  40. down
  41. up
  42. up
  43. up
  44. down
  45. up
  46. down
  47. up
  48. up
  49. up
  50. up
  51. down
复制代码
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-10 21:39

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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