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

手把手教你用 node 玩跳一跳

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

    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   2017-12-30 20:47:48 +08:00 via iPhone
    火钳,留翔。
        2
    nneedd   2017-12-30 21:16:47 +08:00
    有人试过没
        3
    tanranran   2017-12-30 21:20:52 +08:00
    @nneedd 已经刷了 1500
        4
    rogwan   2017-12-30 21:30:31 +08:00 via Android   ♥ 1
    好像现在就缺 PHP 了
        5
    Icemic   2017-12-30 22:32:33 +08:00
    楼主我好像认识你(
        6
    Rememberautumn   2017-12-31 08:04:15 +08:00
    @Icemic 哈哈,好巧
        7
    Nioty   2017-12-31 13:04:28 +08:00 via Android
    @rogwan 蛤蛤 最服你这句话了
        8
    mavi1025   2017-12-31 15:12:09 +08:00
    牛逼!太厉害!
        9
    Rememberautumn   2017-12-31 15:52:23 +08:00
    3000 多,好像被屏蔽了
        10
    Rememberautumn   2018-01-01 20:25:47 +08:00
    @rogwan php 的也有了
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1073 人在线   最高记录 4385   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 22ms · UTC 17:56 · PVG 01:56 · LAX 10:56 · JFK 13:56
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1