基于雷电模拟器的python脚本(乱斗西游2自动收礼包)

本文介绍了如何使用Python脚本结合雷电模拟器的adb命令,实现滑动点击、截图、图片比对、文字识别和与Excel联动,从而自动化完成乱斗西游2游戏中的礼包收取和记录工作。通过截图和图片比对判断游戏状态,文字识别读取关键信息,最后将数据记录到Excel表格中。
摘要由CSDN通过智能技术生成

目录


前言

        乱斗不过是个过气的网易弃游罢了。

        额,虽然但是,作为在安卓2战区享有一定知名度的打工仔,每天无脑上100来个号,重复几个固定操作也是着实让我有点厌恶。因此,我乘着寒假这几天用尽毕生所学写了个自动买礼包的python程序,实现了从自动买礼包到自动记录在Excel上的一系列小功能。这一举动也成功将我带上了自动化耕作的道路,从此解放了双手,过上了幸福美满的生活(狗头)。

       这个脚本的终极目标是买礼包与记录,分解下来只需要实现以下几个功能即可:滑动点击、截取图片、图片比对、文字识别、操作Excel表格。

       下面我来一一介绍如何解决。 

一、滑动点击&截图

       其实实现这一步是比较简单的,一开始我用的模块PyMouse,直接操纵鼠标对雷电模拟器进行操作,后面发现这实在是太拉了:首先得固定雷电模拟器的分辨率和桌面上的相对位置,每次位置必须一样程序才有效,其次运行期间我打不了LOL啥的,甚至不能操作鼠标。显然这不能满足我的要求。于是我另寻他法,发现了雷电模拟器的新天地--adb,直接调用雷电的内部命令行,轻易的实现了目的操作。    

       安装好雷电模拟器之后,大家可以在安装目录下面找到ldconsole.exe和ld.exe两个命令行程序。ld命令用来执行adb命令,而ldconsole.exe更是重量级,它可以控制模拟器参数的设定,包括imei,序列号,手机号分辨率等等参数,还可以检测和控制模拟器的启动和关闭。甚至能够模拟输入,按键,滑动等操作。 

       以下是用来自雷电论坛官方论坛中的提示写的几个简单函数:

def touch(index: int, x: int, y: int):  # 点击
    Dnconsole.touch(index, x, y, 0)
    time.sleep(0.5)


def touch_01(index: int, x: int, y: int, z: int, w: int):  # 长按
    Dnconsole.touch(index, x, y, 0)
    for i in range(0, z):
        Dnconsole.touch(index, x, y, 0)
        time.sleep(w)


def swipe(index: int, x1: int, y1: int, x2: int, y2: int):  # 滑动
    A = [x1, y1]
    B = [x2, y2]
    Dnconsole.swipe(index, A, B)
    time.sleep(1.5)

截图功能虽然简单,但是里面没有现成的,我摸索着搞出了一个函数:

def screen(index: int):
    cmd = "adb -s 127.0.0.1:5559 shell screencap -p /sdcard/Pictures/Screenshots/two.png"
    os.popen(cmd)
    time.sleep(0.5)

-p后面是截图保存的地址,-s后面是模拟器的序列号,在cmd中输入adb devices即可得到。

        关于截图其实还有一个小问题,那就是局部截图。比如下图我只想要币的数字所在局部图,如何实现呢?

 其实很简单啦,在这张截图的基础之上再裁剪一次就ok了,如下:

<
  • 8
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值