大话鼠标指针精确定位原理
大话鼠标指针精确定位原理
废话不多说,我公开的原因是我不玩了。
问题:大话中“系统鼠标指针(简称SM)”和“游戏鼠标指针(简称GM)”不是固定对应。鼠标移动大幅度越大,SM和GM的误差越大。还有就是GM是一个动态鼠标指针。
解决办法:首先解决动态鼠标指针问题。其实很简单,游戏中一般状态下的指针虽然是会动的,不过有一个固定点是的RGB是不变的,只要在SM附近的64像素大小的矩陈里用GetPixel搜索这个值就可以得到GM的的坐标。可以得到GM的位置,实现定位就不难了,因为鼠标移动幅度越大,SM和GM误差就就越大。反之也然。所以只要用一个循环,不断得到两者的误差,之后加在SM上,就可以修正误差,因为移动幅度越来越小,所以误差越来越小,最后就可以精实定位了。
do //算出偏移值,移动系统鼠标,以循环方式减少偏移值,直到到达指定坐标
{
errX=(-(GM.x-目标坐标的X)); //计算出X轴偏移值
errY=(-(GM.y-目标坐标的y)); //计算出Y轴偏移值
GetCursorPos(&spt); //把误差加在SM上,修正误差
SetCursorPos(spt.x+errX, spt.y+errY);
}
while(GM到达指定坐标);
大致就是这样,要实现烧法助手的基本功能也不难,就是根据上面的原理,用SetCursorPos、GetCursorPos、GetPixel几个API就可以实现。
注:本人语言表达能力实在很差(语言成绩全班倒数NO.1),希望有朋友明白上面的原理。
本文章来自论坛的:http://bbs.yezizhu.yzz.cn/dispbbs.asp?boardID=10&ID=69400&page=1
废话不多说,我公开的原因是我不玩了。
问题:大话中“系统鼠标指针(简称SM)”和“游戏鼠标指针(简称GM)”不是固定对应。鼠标移动大幅度越大,SM和GM的误差越大。还有就是GM是一个动态鼠标指针。
解决办法:首先解决动态鼠标指针问题。其实很简单,游戏中一般状态下的指针虽然是会动的,不过有一个固定点是的RGB是不变的,只要在SM附近的64像素大小的矩陈里用GetPixel搜索这个值就可以得到GM的的坐标。可以得到GM的位置,实现定位就不难了,因为鼠标移动幅度越大,SM和GM误差就就越大。反之也然。所以只要用一个循环,不断得到两者的误差,之后加在SM上,就可以修正误差,因为移动幅度越来越小,所以误差越来越小,最后就可以精实定位了。
do //算出偏移值,移动系统鼠标,以循环方式减少偏移值,直到到达指定坐标
{
errX=(-(GM.x-目标坐标的X)); //计算出X轴偏移值
errY=(-(GM.y-目标坐标的y)); //计算出Y轴偏移值
GetCursorPos(&spt); //把误差加在SM上,修正误差
SetCursorPos(spt.x+errX, spt.y+errY);
}
while(GM到达指定坐标);
大致就是这样,要实现烧法助手的基本功能也不难,就是根据上面的原理,用SetCursorPos、GetCursorPos、GetPixel几个API就可以实现。
注:本人语言表达能力实在很差(语言成绩全班倒数NO.1),希望有朋友明白上面的原理。
本文章来自论坛的:http://bbs.yezizhu.yzz.cn/dispbbs.asp?boardID=10&ID=69400&page=1
本资讯及文章仅代表发表厂商及作者观点,不代表叶子猪本身观点
已有人对此文章评分
您的评分地址:
大话成功交易一览更多>>>