教你用Python来玩微信跳一跳

[复制链接]
nitenite 发表于 2017-12-30 18:04:34 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
游戏模式
0 d# M+ N! R4 U# l5 u/ `9 e0 O这是一个 2.5D 插画风格的益智游戏,玩家可以通过按压屏幕时间的长短来控制这个「小人」跳跃的距离。可能刚开始上手的时候,因为时间距离之间的关系把握不恰当,只能跳出几个就掉到了台子下面。玩法类似于《flappy bird》1 C# Y. D) D% R6 P5 m# R

4 @$ V; k9 x" e7 |. P6 H" @如果能精确测量出起始和目标点之间测距离,就可以估计按压的时间来精确跳跃?所以花2个小时写了一个python脚本进行验证6 c) C5 A6 @# l* k6 |
希望不要把分数刷太高,容易没朋友的。。。
3 H- Z" v' J, n8 T1 C  E5 [工具介绍' M, c) T8 z8 U: n" `+ C% p9 V( `( q% X
    ; I$ B' H) B+ n, t
  • Python 2.7
    . N5 a; P- u/ ?4 N0 a
  • Android 手机
    / u) Y3 y' L% J, S; N
  • Adb 驱动7 q+ B+ @- j3 j- A
  • Python Matplot绘图7 N6 {# g: Z# |/ B
原理说明, M! A5 v, `8 B: G8 \/ X$ q, Y
    5 B( B. a" O4 A6 b/ Q
  • 将手机点击到《跳一跳》小程序界面;; V8 N8 L: l4 }
  • 用Adb 工具获取当前手机截图,并用adb将截图pull上来
    4 G% a+ U; I1 u" O4 s
adb shell screencap -p /sdcard/1.pngadb pull /sdcard/1.png .
    , L. K; ~2 E. I$ J" k( X; M
  • 用matplot显示截图;
    ! d  {, ^+ ~( \
  • 用鼠标点击起始点和目标位置,计算像素距离;* B# Y* M: G1 ^6 C9 L
  • 根据像素距离,计算按压时间;! P/ c& @% }  J6 M
  • 用Adb工具点击屏幕蓄力一跳;
    5 c& D6 ^' s8 e1 a4 X( _
adb shell input swipe x y x y time步骤
! O  a# }- s) T2 Y

    , N- c7 i3 m" u8 m, \9 h  M
  • 首先需要有一台Android手机,转至小游戏界面;( J$ ~$ |! C4 y$ |8 r/ b
  • 用USB线连接电脑(我的是Linux Ubuntu 16.04 x86_64);
    $ O6 T' r: e% M% O
  • 去github clone我的代码,运行 python wechat_jump.py;6 n% d7 M& ^4 n+ |* _
  • 点击起始和结束点;! h, s6 `5 \1 ?0 ~
我的屏幕是1920*1080,距离系数为1.35,如果是别的分辨率,暂时需要修改一下代码中的距离系数.
1 l" l( V  `9 Y9 j& ]3 U实验结果
8 s' |- r5 T- T1 E  {* V) B只要有耐心,你就是王者; M+ q# X+ n; s$ m. R8 A& B

+ D  f4 Y+ ?+ JTODO
9 I0 i7 t" r- i! S/ h# R5 y可以对拉上来的图片进行颜色分割,识别小人和目标中心点,这样就不需要手动点击自动弹跳。事实证明,机器人比人更会玩儿游戏。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

精彩评论1

cornil 发表于 2017-12-30 19:04:35 | 显示全部楼层
哥们 转载也要注明作者吧?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

发布主题
推荐阅读更多+
阅读排行更多+
用心服务创业者
0851-88611148
周一至周五 9:00-18:00
意见反馈:admin@0851life.com

扫一扫关注我们

Powered by 童码少儿编程 X3.4© 2001-2013 0851life Inc.|网站地图