发表回复 
移动到同一图标,测试二次的移动到位置不一样
2010-05-18, 12 : 50
移动到同一图标,测试二次的移动到位置不一样
我在游戏界面里,用imagesearch搜索某一图像,搜索到后让鼠标移动到图像位置,测试二次,得到的图像的坐标是一样的,但是鼠标却移动到游戏界面的不同位置。用A​HK带的windows spy查看,二次测试,游戏界面里,同一个位置的坐标是不一样的。这怎么办,不能实现让鼠标准确地移动到某一图像上的功能了,会有偏差,x,y大约差30个像素内的样子。​
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2010-06-04, 09 : 59
 
我观察了一段时间了,发现原因是桌面的鼠标和在游戏界面里的鼠标位置是不一样的,我用鼠标移动到游戏界面最上面的时候发现的.意思就是说桌面的鼠标在位置100,100,​游戏界面里的鼠标却在120,110,它们是有偏差的.现在有个新问题,鼠标图像是动态的,怎么得到鼠标图像的位置?
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2010-06-04, 13 : 03
 
鼠标移动偏差的问题,只要设置坐标为绝对坐标就不会出现了。

取光标位置的话,有个API函数如下:


函数功能:该函数检取光标的位置,以屏幕坐标表示。
函数原型:BOOL GetCursorPos(LPPOlNT IpPoint);
参数:
IpPint:POINT结构指针,该结构接收光标的屏幕坐标。
返回值:如果成功,返回值非零;如果失败,返回值为零。若想获得更多错误信息,请调用GetLastError函数。
备注:光标的位置通常以屏幕坐标的形式给出,它并不受包含该光标的窗口的映射模式的影响。该调用过程必须具有对窗口站的WINSTA_READATTRIBUTES访问权​限。

  • AHK basic群:58806956
  • AHK advance群:3222783
访问这个用户的网站 查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2010-06-05, 17 : 07
 
code]xys :=DllCall("GetCursorPos")[[/code]
我不会用这个,怎么得返回值,得到光标位置.能举个例吗?
我想得到的是游戏界面里鼠标的位置,桌面鼠标的位置用MouseGetPost得到,MouseGetPost和GetCursorPos有区别不?
鼠标图像是循环变化的,怎么得到鼠标图像的位置?
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2010-06-05, 17 : 16
 
没有区别,MouseGetPos就是用GetCursorPos实现的
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2010-06-15, 21 : 54
 
终于算是解决问题了,鼠标移动的距离越大,游戏中鼠标与桌面的鼠标的偏移也越大.如:要移动到游戏界面x100,y100的位置.我的解决方法是:先用mousemove​移动到x100,y100(这时候桌面鼠标是在x100,y100位置,但游戏鼠标不在这个位置),然后用imagesearch找到游戏界面里鼠标位置,算出其鼠标的偏​移.根据偏移,让游戏鼠标向x100,y100移动,直到与x100,y100这个坐标的偏差不超过3个像素就算是移动到正确位置了.因为短距离的鼠标移动,其偏差比较小​.
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2013-04-23, 11 : 01
 
鼠标漂移问题,很多游戏都有这个问题。
解决办法就如楼上所说的思路。通过offset循环移动到目标位置,直到小于设置误差时推出循环。
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
发表回复 


论坛跳转:


联系我们 | Autohotkey 中文站 | 回到顶部 | 回到正文区 | 精简(归档)模式 | RSS 聚合