自动玩游戏,手游脚本究竟是怎么做的?

请教下,自动玩游戏,手游脚本究竟是怎么做的?
最新回答
三分醒七分醉

2024-09-15 06:07:09

手游现在已经成为大家打发碎片化时间的一种很普遍的方式了,而有的人会由于种种愿意不能自己去玩,就希望有什么办法或者工具能帮助我们解决这个问题,不用人收着也能完成任务。

实现原理:

比如一个 游戏 的任务,你需要在不同的手机屏幕上进行一系列点击,滑动,甚至输入文本,发送语音等动作后才能完成,而这一切操作其实就是手机中会记录这些动作的文件,文件存储的是一个又一个的

信号量
,这些信号然后根据不同厂商的设定反馈给上层,而上层会根据反馈的信息转换成统一识别的事件,事件最后响应给应用,并对信息进行相应的处理,最后呈现给用户并实现它,这一些列的动作都是可以通过一些现有的工具或者说解决方案来帮我们实现自动 游戏 的功能。

一般实现的方式

1.通过USB连接电脑,然后通过ADB(一种android的调试工具,当然iOS也有类似的工具一个原理)对手机进行远程的控制;

2.通过在手机中安装一个控制其它app的app来控制,说简单点就是生成一个手机应用,在手机中运行后,直接通过这个应用对其它应用进行操作;

实现方式我们明白了,那么要借助哪些工具或者说哪些解决方案来帮我们进行实现呢。

易语言解决方案:

首先我们来说一说这个被大多数人所知道的,但是又被"正统"程序员所抵触的

编程语言

这是一款运用中文进行编程的语言,可以说它让大多数人摆脱了"英文魔咒",很多人认为学习编程其实就是学英语,或者英语不好没办法学习编程,这其实是错误的理解,这个后话了,等我有空了再为大家分享下如何摆脱这个魔咒。

优势:

1. 中文化编程,中文毕竟是我们的母语,在更加让人容易理解;

2. 在 游戏 相关领域有非常成熟的框架,或者中支持库;

3. 使用这种解决方案的人群非常多,当你遇到问题时很容易找到解决办法;

劣势:

1. 代码的编译速度相对其他语言来说很慢;(对于现在的

电脑硬件
来说其实已经没啥大碍)

2. 会被其他编程语言鄙视,太local化了,没有那种国际感;

3. 收费;(虽然作者初衷是推广

中文编程
,但是推广也是要钱的嘛,能理解)

4. 易语言需要进行一定的学习,相对其他几个解决方案来说难度略高;


易语言解决方案总的来说,由于是中文的并且有大量现成

知识库
做支撑,很容易就能实现功能,所以一直被用来作为中控型的脚本来编写,不大会被用来进行生成app的方式来进行(有app化的解决办法,但是不稳定不讨论)


按键精灵解决方案:

案件精灵可以说是这个领域里, 历史 悠久且非常出色的一位前辈。非常简单就能上手,甚至有通过录像然后转成脚本的录制功能,当然要制作出优秀的脚本也需要进行一定的学习;

优势:

1. 非常简单,容易上手,有非常丰富的

快捷方式

2. 有录制功能,更进一步降低了制作门槛;

3. 历史 悠久人群稳定,所以社区也很稳定,遇到问题很容易找到解决办法(注意我说的是群体,不是按键精灵的论坛。)

4. 按键精灵非常良好的提供了解决方案,即可生成app直接手机中运行,也可以通过安装按键的android版然后传送脚本进行运行。

劣势:

1. 付费,且不便宜;

2. 代码框架实现是基于英文实现;

3. 无法进行分

文件管理
,就是说所有业务要写进一个文本里,这其实非常不方便管理和维护;


按键精灵解决方案,比较适合对编程没有什么基础的朋友上手。网络上也有非常多的免费教程可以进行学习。

触动精灵解决方案:

触动精灵是近几年新启一个新的平台,是基于lua语言来进行编写开发的,与按键精灵类似,不过相对按键的名声赫赫,就有点显得小很多。

优势:

1. 支持文件化管理开发;(这点其实非常棒,对于后期的代码开发或者维护来说都很棒)

2. 基于lua开发,所以可以完美利用lua的原表特性来进行一些框架搭建,更加适用于负责的点击事件;

3. 拥有一套完善的支持自动化的库,可以直接拿来使用;

4. 支持远程调试,脚本传到手机中运行,也可以生成app进行控制;

劣势:

1. 需要学习lua语言,对小白来说有点不友好;

2. 需要付费,相对按键来说比较便宜;

3. 偏小众,出问题想找解决办法非常难找;

4. 对于android和iOS系统收取不同的费用来打包生成apk;

5. 代码框架也是基于英文进行实现的;


触动精灵的解决方案,好于能利用lua的原表特性来进行自定义框架开发,方便自己的后续的多次开发。网络上也有很多的教程来进行学习,就是遇到问题需要解决的时候,总会找不到办法,这里有点难受。


Auto.js解决方案:

这套方案是借助于android手机的无障碍服务进行实现的,根据控件的id进行一系列的事件响应,精准度更高。

优势:

1. 无需root就可以实现控制手机;

2. 可在手机中运行,也可以打包成apk运行;

3. 通过控件id进行控制,

准确度
非常高,并且自适应分辨率;

劣势:

1. 对 游戏 不大友好,因为 游戏 很多时候控件都不规则,都是一个个画布;

2. 需要学习js;

3. 基于英文实现的代码框架;


Auto.js这个解决方案,对于 游戏 来说并不大友好,虽然也有找图找色等功能,但是使用起来并没有按键或者触动那么方便,并且由于是基于空间id进行控制,并不大适合 游戏 。

其他解决方案:

其实还有其他非常多的类似的解决方案,但是大多数都没上面列举的这些被人熟知。

举个例子像python也拥有非常丰富的类库,但是只能适应使用usb连接手机的通过adb进行控制这样的操作,无法生成一个apk来安装到手机中进行操作,我也曾尝试过在手机中模拟一个python环境,但是依赖的类库无法非常方便的移植到手机中,就算静态编译过去也非常的耗时,所以python也能实现但是他很不友好,也很不方便,学习成本也非常高。