脚本如何提高时间精度呢

2022-10-13 10:23:07 +08:00
 shinonome

游戏(king of thieves)正在做一个脚本,功能很简单就是点击一下就好了,但是对于点击的时间有很高的要求 time.sleep 我查了下只能做到毫秒级的 i=140 time.time()-start=0.14237737655639648 i=141 time.time()-start=0.14109015464782715 i=142 time.time()-start=0.14684534072875977 i=143 time.time()-start=0.14805078506469727 i=144 time.time()-start=0.14444518089294434 i=145 time.time()-start=0.15004920959472656 有什么其他办法吗,精度的差距有点大

2187 次点击
所在节点    Python
7 条回复
bthulu
2022-10-13 14:02:38 +08:00
不要 sleep, 就 white(true)里死循环查询当前时间就行了
xtreme1
2022-10-13 14:11:58 +08:00
假定 Windows 了
Win 上默认时间片我记得是 15.625ms
想精确到 1ms 常规操作应该是用多媒体定时器
shinonome
2022-10-13 15:44:19 +08:00
@bthulu 啊,确实我试试
shinonome
2022-10-13 15:44:40 +08:00
@xtreme1 感谢大佬,我研究一下
ysc3839
2022-10-14 12:18:39 +08:00
不要 sleep ,用 time.monotonic_ns()或者 time.perf_counter_ns()取时间然后 while 等待。
https://docs.python.org/3/library/time.html#time.monotonic
shinonome
2022-10-21 16:42:36 +08:00
@ysc3839 感谢,确实好用,精确不少
ysc3839
2022-10-21 18:07:42 +08:00
@ysc3839 翻了下 CPython 的代码,time.monotonic_ns() 在 Windows 下调用的是 GetTickCount64 ,这个精度可能没那么高。
time.perf_counter_ns() 调用的是 QueryPerformanceCounter ,这个精度是没问题的。
可以用 time.get_clock_info('perf_counter') 查看精度

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/886552

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX