Rememberautumn
V2EX  ›  Node.js

手把手教你用 node 玩跳一跳

  •  1
     
  •   Rememberautumn · Dec 30, 2017 · 9251 views
    This topic created in 3085 days ago, the information mentioned may be changed or developed.

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

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

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

    棋盘:

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

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

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

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

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

    10 replies    2018-01-01 20:25:47 +08:00
    LeungJZ
        1
    LeungJZ  
       Dec 30, 2017 via iPhone
    火钳,留翔。
    nneedd
        2
    nneedd  
       Dec 30, 2017
    有人试过没
    ByteRan
        3
    ByteRan  
       Dec 30, 2017
    @nneedd 已经刷了 1500
    rogwan
        4
    rogwan  
       Dec 30, 2017 via Android   ❤️ 1
    好像现在就缺 PHP 了
    Icemic
        5
    Icemic  
       Dec 30, 2017
    楼主我好像认识你(
    Rememberautumn
        6
    Rememberautumn  
    OP
       Dec 31, 2017
    @Icemic 哈哈,好巧
    Nioty
        7
    Nioty  
       Dec 31, 2017 via Android
    @rogwan 蛤蛤 最服你这句话了
    mavi1025
        8
    mavi1025  
       Dec 31, 2017
    牛逼!太厉害!
    Rememberautumn
        9
    Rememberautumn  
    OP
       Dec 31, 2017
    3000 多,好像被屏蔽了
    Rememberautumn
        10
    Rememberautumn  
    OP
       Jan 1, 2018
    @rogwan php 的也有了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1753 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 16:19 · PVG 00:19 · LAX 09:19 · JFK 12:19
    ♥ Do have faith in what you're doing.