V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Rememberautumn
V2EX  ›  Node.js

手把手教你用 node 玩跳一跳

  •  1
     
  •   Rememberautumn · 2017-12-30 19:37:53 +08:00 · 8239 次点击
    这是一个创建于 2505 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    棋盘:

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

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

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

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

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

    10 条回复    2018-01-01 20:25:47 +08:00
    LeungJZ
        1
    LeungJZ  
       2017-12-30 20:47:48 +08:00 via iPhone
    火钳,留翔。
    nneedd
        2
    nneedd  
       2017-12-30 21:16:47 +08:00
    有人试过没
    tanranran
        3
    tanranran  
       2017-12-30 21:20:52 +08:00
    @nneedd 已经刷了 1500
    rogwan
        4
    rogwan  
       2017-12-30 21:30:31 +08:00 via Android   ❤️ 1
    好像现在就缺 PHP 了
    Icemic
        5
    Icemic  
       2017-12-30 22:32:33 +08:00
    楼主我好像认识你(
    Rememberautumn
        6
    Rememberautumn  
    OP
       2017-12-31 08:04:15 +08:00
    @Icemic 哈哈,好巧
    Nioty
        7
    Nioty  
       2017-12-31 13:04:28 +08:00 via Android
    @rogwan 蛤蛤 最服你这句话了
    mavi1025
        8
    mavi1025  
       2017-12-31 15:12:09 +08:00
    牛逼!太厉害!
    Rememberautumn
        9
    Rememberautumn  
    OP
       2017-12-31 15:52:23 +08:00
    3000 多,好像被屏蔽了
    Rememberautumn
        10
    Rememberautumn  
    OP
       2018-01-01 20:25:47 +08:00
    @rogwan php 的也有了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1595 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 18ms · UTC 17:02 · PVG 01:02 · LAX 09:02 · JFK 12:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.