Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

执行pos = win32gui.GetWindowRect(window) 后得到的参数不对 #7

Open
RayQiii opened this issue Jul 17, 2018 · 4 comments
Open

Comments

@RayQiii
Copy link

RayQiii commented Jul 17, 2018

Hi 你好
我尝试运行了代码后,发现定位的游戏窗口的值,和我实际截图后在小画家中看到的值有出入,对此,你有什么建议或者想法吗?

@TheThreeDog
Copy link
Owner

这个值的误差没关系,程序的定位规则是死的,所以每次定位后和你小画家看到的值的差值是固定的, 在你计算方块位置的时候,加进这个差值就可以。

@RayQiii
Copy link
Author

RayQiii commented Aug 13, 2018

Hi 你好
最近重新玩了一下你的代码,发现把屏幕分辨率设置成1440900后 即可以正常定位游戏窗口的位置
当屏幕设置成默认分辨率2160
1440后 就会出现 函数定位的游戏窗口坐标与实际游戏窗口的坐标 不一致的情况。
怀疑是否是pos = win32gui.GetWindowRect(window) 这个函数的bug

@TheThreeDog
Copy link
Owner

应该是这个函数获取到pos的误差的原因, 因为这套代码的实现机制本来就有弊端,所以这里哪怕一像素的误差都会导致无法正常使用。 有些电脑分辨率的改变,以及有些电脑上显示设置125% %150 都有可能导致此BUG,解决方案的话,只好因地制宜,不同的计算机上重新查看一下像素距离,修改配置, 好在是脚本语言,不需要重新编译神马的,改起配置来方便得很。

@Freedomisgood
Copy link

如果显示设置了缩放125%或者其他,只要不是100%,pos = win32gui.GetWindowRect(window)获得的数值都是不准确的。
此外, 一像素的误差都会导致无法正常使用, 确实,目前的识别率经常会识别错误, 不知大佬有什么提高的方法么?想交流一下,是提高定位、切分的精确度呢,还是对图案再做处理?

应该是这个函数获取到pos的误差的原因, 因为这套代码的实现机制本来就有弊端,所以这里哪怕一像素的误差都会导致无法正常使用。 有些电脑分辨率的改变,以及有些电脑上显示设置125% %150 都有可能导致此BUG,解决方案的话,只好因地制宜,不同的计算机上重新查看一下像素距离,修改配置, 好在是脚本语言,不需要重新编译神马的,改起配置来方便得很。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants