手把手教你用 node 玩跳一跳

2017-12-30 19:37:53 +08:00
 Rememberautumn

github: https://github.com/aOrz/wx_jump_game

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

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

棋盘:

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

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

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

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

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

8290 次点击
所在节点    Node.js
10 条回复
LeungJZ
2017-12-30 20:47:48 +08:00
火钳,留翔。
nneedd
2017-12-30 21:16:47 +08:00
有人试过没
tanranran
2017-12-30 21:20:52 +08:00
@nneedd 已经刷了 1500
rogwan
2017-12-30 21:30:31 +08:00
好像现在就缺 PHP 了
Icemic
2017-12-30 22:32:33 +08:00
楼主我好像认识你(
Rememberautumn
2017-12-31 08:04:15 +08:00
@Icemic 哈哈,好巧
Nioty
2017-12-31 13:04:28 +08:00
@rogwan 蛤蛤 最服你这句话了
mavi1025
2017-12-31 15:12:09 +08:00
牛逼!太厉害!
Rememberautumn
2017-12-31 15:52:23 +08:00
3000 多,好像被屏蔽了
Rememberautumn
2018-01-01 20:25:47 +08:00
@rogwan php 的也有了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/418905

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX