博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微信跳一跳第二天
阅读量:5908 次
发布时间:2019-06-19

本文共 1177 字,大约阅读时间需要 3 分钟。

1. 寻找关键坐标——起跳坐标

算法策略:获取小人的底座中心点的值作为起跳点。

1 获取小人的所有像素点中y坐标的最大值

2 在小人y坐标的最大值那些像素点中,计算出x的平均值,作为小人底座的x的值。

3 y坐标的最大值减去一个偏移值,就作为小人底座的y值。(注意:该偏移值不同的设备是不同的,同一台设备不同场景下是一样的)

比如教师机的设备中最低点的值是(337,1131),中心值是 (337,1113),从而计算出偏移值为1131-1113=18

 

 

2. 寻找目标坐标

获取目标坐标的y值

取屏幕宽和高的一半(x=540和y=960)

 

 

我们会发现,目标格子的边沿(x=563,y=978)和这个是差不多的(y的偏差是18,x的偏差是23.

以后每次跳动的时候,假如已经知道目标格子的边沿,和目标坐标的x值,就可以很轻松计算出目标坐标的y值。

注意:每个格子的宽和高的比例是相同的。

左:(563,847)

右:(1015,847)

上:(788,720)

下:(788,978)

中:(788,847)

高和宽的比例:(978-720)/(1015-563) =258/452。假设该值为p

 

 

已经知道目标坐标的x值,求目标坐标的y值

 

3. 控制屏幕进行跳动

operation.py

    # 控制屏幕进行跳动

    def jump(self, src, dst, press_time):

        press_time = int(press_time)

        cmd = "adb shell input swipe %d %d %d %d %d" % (

            int(src[0]), int(src[1]),

            int(dst[0]), int(dst[1]),

            press_time

        )

        print(cmd)

        os.system(cmd)

 

 

 

 

 

 

 

 

 

 

 

main.py

def test_jump():

    algorithm = Algorithm()

    op = Operation()

    im = op.screen_cap()

    start_x, start_y, end_x, end_y = algorithm.find_point(im)

    start_point = (start_x, start_y)

    end_point = (end_x, end_y)   

    distance = algorithm.euclidean_distance(start_point, end_point)

    press_time = algorithm.distance_to_time(distance)

    op.jump(start_point, end_point, press_time)

 

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/sjzsjzsjz/p/9245509.html

你可能感兴趣的文章
poj1700(黑书第二道贪心例题)
查看>>
选择附件物品选择(有依赖背包问题)
查看>>
回顾过去。。展望未来
查看>>
box2d之刚体,定制器笔记
查看>>
(原创)c++11改进我们的模式之改进观察者模式
查看>>
从银行的钱荒看一个公司的团队建设 产品线过多最终导致最赚钱的项目面临破产...
查看>>
Entity Framework 同一个上下文中,如何进行对同一个实体进行指定字段更新
查看>>
Linux特殊权限:SUID、SGID、SBIT
查看>>
Interactive Extensions简介
查看>>
技术人生:高山仰止,景行观止,虽不能至,我心向往之
查看>>
CentOS 如何使用第三方软件库-EPEL与RPMForge、RPMFusion软件库
查看>>
SQLSERVER执行性能统计工具SQLQueryStress
查看>>
Java Date SimpleDateFormat
查看>>
[你必须知道的.NET]第二十七回:interface到底继承于object吗?
查看>>
HDU 3360 National Treasures(二分匹配,最小点覆盖)
查看>>
hdu 4444 Walk (离散化+建图+bfs+三维判重 好题)
查看>>
使用jquery-qrcode生成二维码
查看>>
web页面内容优化管理与性能技巧
查看>>
js处理url
查看>>
CCR
查看>>