Project1

标题: 求大家推荐一个比较灵敏的鼠标系统核心 [打印本页]

作者: 风缘    时间: 2011-7-29 22:04
标题: 求大家推荐一个比较灵敏的鼠标系统核心
本帖最后由 风缘 于 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 版,下载地址在这里

dsu_plus_rewardpost_czw
作者: fux2    时间: 2011-7-29 22:08
up比down多乃是神么,你不松鼠标down两下给我看看.
作者: 风缘    时间: 2011-7-29 22:14
下面给出拖曳代码以及某次运行的输出
  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
复制代码





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