博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
手把手教你用 node 玩跳一跳
阅读量:7194 次
发布时间:2019-06-29

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

github: 

实现原理:

用 adb,将手机截屏,并传输到电脑上,将图片载入到 canvas 中,通过 getImageData,获取到图片的数据,将 rgb颜色转为 255 的色值,形成一个二维数组,这样我们就可以用颜色点阵来表示图片了,重点来了,然后呢?

匹配跳跃点

棋子:小人颜色是固定的,找到小人的色值之后,我们就可以匹配到小人的底部,得到小人的坐标

棋盘:

棋盘的匹配有些复杂,棋盘的形状不规则,还有阴影,除了棋盘顶部还有左侧和前侧的视图。

  1. 刚开始,希望可以通过一行一行的扫描,找到棋盘最宽的地方,从而找到棋盘的 x 坐标,无奈,失败,可能有阴影的地方最宽,然后就跑偏了。

  2. 想通过颜色的多少来区分是不是棋盘,颜色面积大的,肯定是背景色或者其他,可惜,界定没那么明显失败。

  3. 还是横向扫描棋盘,扫描到之后,判断长度达到棋子宽度的1.5倍之后,就停止乡下扫描,获取到棋盘的点。

起跳:

获取到棋子和棋盘的坐标,计算两点之间的距离,然后乘以系数,就可以算出按压时间啦!使用 adb 就可以发送长按指令了哦~

转载地址:http://kwakm.baihongyu.com/

你可能感兴趣的文章
TCP_NODELAY 和 TCP_NOPUSH的解释
查看>>
关于架构优化和设计,架构师必须知道的事情(转)
查看>>
《王者荣耀》手游产品分析报告:崛起的王者荣耀,胜负就是这么简单!
查看>>
Jenkins修改端口号(成功率高)
查看>>
前端开发框架简介:angular和react
查看>>
进程创建/退出父子关系的调整
查看>>
Axure多人协作
查看>>
mysql中TIMESTAMP设置默认时间为当前时间
查看>>
Android学习笔记进阶16之BitmapShader
查看>>
ORA-22828 输入样式或替换參数超过了32k限制大小
查看>>
网络地址转换-NAT
查看>>
spring MVC配置详解
查看>>
我的Mac必备软件
查看>>
angular 事件广播和事件监听
查看>>
(hdu step 8.1.6)士兵队列训练问题(数据结构,简单模拟——第一次每2个去掉1个,第二次每3个去掉1个.知道队伍中的人数<=3,输出剩下的人 )...
查看>>
[转]lua元表代码分析
查看>>
使用find命令查找Linux中的隐藏文件的方法
查看>>
KNN K~近邻算法笔记
查看>>
CSS3中的动画效果-------Day72
查看>>
Codeforces 97B Superset 平面分治
查看>>