首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Node.js
Express
PPA for Ubuntu
ppa:chris-lea/node.js
V2EX  ›  Node.js

手把手教你用 node 玩跳一跳

  •  1
     
  •   Rememberautumn · 169 天前 · 4970 次点击
    这是一个创建于 169 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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
        1
    LeungJZ   169 天前 via iPhone
    火钳,留翔。
        2
    nneedd   169 天前
    有人试过没
        3
    tanranran   169 天前
    @nneedd 已经刷了 1500
        4
    rogwan   169 天前 via Android   ♥ 1
    好像现在就缺 PHP 了
        5
    Icemic   169 天前
    楼主我好像认识你(
        6
    Rememberautumn   168 天前
    @Icemic 哈哈,好巧
        7
    Nioty   168 天前 via Android
    @rogwan 蛤蛤 最服你这句话了
        8
    mavi1025   168 天前
    牛逼!太厉害!
        9
    Rememberautumn   168 天前
    3000 多,好像被屏蔽了
        10
    Rememberautumn   167 天前
    @rogwan php 的也有了
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   566 人在线   最高记录 3541   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 17ms · UTC 22:09 · PVG 06:09 · LAX 15:09 · JFK 18:09
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1