每次需要通过点击屏幕来控制小人跳到下一个砖块,点击时间的长短会控制小人跳的远近,跳到砖块正中心有额外的bonus, 有些特殊的砖块会有额外的bonus,像音乐盒,便利店这样的砖块。
当前帧画面作为输入,提取小人和目的方块的位置,计算这两个位置之间的距离,然后转换成点击屏幕的时间,然后点击,循环。
插入手机,确保Adb工具
已经连接上手机,即ada devices
能找到设备id,运行main.py
,然后看着它玩即可。
location.py
:get_dist()
负责检测小人坐标person_cor
,目的砖块dst_cor
;dist2time
负责把小人和目的砖块之前的距离转化成时间。main.py
:jump()
和get_screen()
封装了Adb
的工具,完成截取手机屏幕和按指定时长点击屏幕2个动作。
- 由于各个手机分辨率的不同,
get_dist()
中一开始的resize
可能要调整,裁剪的目的是截取画面中间信息,去掉上下多余的部分,最后要保证是一个320x275的图像,否则dist2time()
中的系数也要调整。
img = cv2.resize(img, (288, 512), fx=0, fy =0, interpolation = cv2.INTER_CUBIC)
img = img[100:450, 20:275]