Jump More
 2018-01-11

跳一跳

记一个无聊的下午,研究跳一跳辅助程序的历程。
  1. Jump More
    首先去Github找到了红火的辅助项目,学习思路,因为第一次接触肯定是手足无措,学习先人的经验还是很有必要的。
    
  2. 简单思路
    • 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
      
  1. Tips
    用 from PIL import ImageDraw 在图上标注点Debug。
    
  2. 无聊的下午Over…