跳一跳
记一个无聊的下午,研究跳一跳辅助程序的历程。
- Jump More
首先去Github找到了红火的辅助项目,学习思路,因为第一次接触肯定是手足无措,学习先人的经验还是很有必要的。
- 简单思路
- adb来截图手机,上传到项目目录,打开图片,标注两个点,跳。
- adb 下载地址https://adb.clockworkmod.com/
- 截图命令
adb shell screencap -p /sdcard/autojump.png
- 截图推到项目
adb pull /sdcard/autojump.png .
- 找到棋子点和目标板点
首先找到目标点的最顶端的一个点,通过逐行扫描元素,发现与其他元素不一致的部分,因为肯定是一行像素颜色都是相同的,如果没有板子的话。 从这个点向下275px往上搜索与这个点像素颜色相差不大的第一个点,就是我们要找的板子点,这样x,y都定下来了。 棋子则是找固定的颜色区间,因为底座有一个颜色范围,取平均值即可。 获取距离。
- 跳跃
一个简单的系数乘,或是复杂的公式,计算按压时间。
press_time = int( max(distance * press_coefficient, 200))
head_diameter = 60 x1, y1, x2, y2 = get_swipe_button() scale = 0.945 * 2 / head_diameter actual_distance = distance * scale * (math.sqrt(6) / 2) press_time = (-945 + math.sqrt(945 ** 2 + 4 * 105 * 36 * actual_distance)) / (2 * 105) * 1000
- adb 按压
adb shell input swipe {x1} {y1} {x2} {y2} {duration}
- Tips
用 from PIL import ImageDraw 在图上标注点Debug。
- 无聊的下午Over…