如今,手机游戏已经成为每个人打发碎片化时间的一种非常普遍的方式。但是有些人因为各种愿望不能自己玩,所以希望有一些方法或者工具来帮助我们解决这个问题,这样我们就可以完成任务,而没有人去承担。
实现原理:
比如一个游戏任务,你需要在不同的手机屏幕上执行点击、滑动,甚至输入文字、发送语音等一系列动作,但这些动作其实都是将这些动作记录在手机中的文件。文件中存储了一个又一个信号量,这些信号再根据不同厂商的设置反馈给上层,而上层会根据反馈信息将其转换成统一识别的事件,事件最终会响应应用。并对信息进行相应的处理,最终呈现给用户并实现。所有这些动作都可以通过一些现有的工具或解决方案帮助我们实现自动游戏的功能。
一般实现的方式:
1.通过USB连接电脑,再通过ADB远程控制手机(一个安卓的调试工具,当然iOS也有类似的工具);
2.通过在手机中安装控制其他应用的应用来控制。简单来说,就是生成一个手机应用。在手机中运行后,可以通过这个应用直接操作其他应用;
我们了解实现方式,那么我们应该使用什么工具或解决方案来帮助我们实现呢?
易语言解决方案:
首先,我们来谈谈这种编程语言,它为大多数人所熟知,但与“正统”的程序员相矛盾。
这是一种中文编程语言。可以说,它让大多数人摆脱了‘英语魔咒’。很多人认为学编程其实就是学英语,或者说英语不够好学不了编程。这其实是一种错误的理解。这是另一个故事。有空的时候,我会和大家分享如何摆脱这个魔咒。
优势:
1\.中文编程,毕竟中文是我们的母语,更容易理解;
2.\.游戏相关领域有非常成熟的框架或媒介支持库;
3.使用这种解决方案的人很多,遇到问题很容易找到解决方案。
劣势:
1\.代码的编译速度与其他语言相比非常慢;(对于目前的电脑硬件来说,其实没什么大不了的。)
2\.会被其他编程语言鄙视,太本地化,没有那种国际感;
3.收费;(虽然作者的初衷是推广中文编程,但推广也需要钱,这是可以理解的。)
4\.容易的语言需要一定程度的学习,比其他解决方案稍微难一点;
一般来说,易语言解决方案都是中文的,有大量现成的知识库支持,很容易实现功能。所以一直作为中控脚本使用,不太可能用于生成app(有app解决方案,但不稳定,不讨论)。
简单语言代码
按键精灵解决方案:
Case Elf可以说是这个领域历史悠久的杰出前辈。上手非常容易,甚至有录音然后转成剧本的录音功能。当然,要做出优秀的剧本,我们也需要学习。
优势:
1\.非常简单,使用方便,快捷方式丰富;
2\.具有录音功能,进一步降低了制作门槛;
3.历史悠久的人比较稳定,所以社区也很稳定,遇到问题很容易找到解决办法(注意我说的是群体,不是按钮精灵的论坛。)
4\.按钮向导提供了一个非常好的解决方案,就是可以生成app,直接在手机中运行,也可以安装安卓版本的按钮,然后发送脚本。
行运行。劣势:
1. 付费,且不便宜;
2. 代码框架实现是基于英文实现;
3. 无法进行分文件管理,就是说所有业务要写进一个文本里,这其实非常不方便管理和维护;
按键精灵解决方案,比较适合对编程没有什么基础的朋友上手。网络上也有非常多的免费教程可以进行学习。
按键精灵安卓代码
触动精灵解决方案:
触动精灵是近几年新启一个新的平台,是基于lua语言来进行编写开发的,与按键精灵类似,不过相对按键的名声赫赫,就有点显得小很多。
优势:
1\. 支持文件化管理开发;(这点其实非常棒,对于后期的代码开发或者维护来说都很棒)
2\. 基于lua开发,所以可以完美利用lua的原表特性来进行一些框架搭建,更加适用于负责的点击事件;
3\. 拥有一套完善的支持自动化的库,可以直接拿来使用;
4\. 支持远程调试,脚本传到手机中运行,也可以生成app进行控制;
劣势:
1\. 需要学习lua语言,对小白来说有点不友好;
2\. 需要付费,相对按键来说比较便宜;
3\. 偏小众,出问题想找解决办法非常难找;
4\. 对于android和iOS系统收取不同的费用来打包生成apk;
5\. 代码框架也是基于英文进行实现的;
触动精灵的解决方案,好于能利用lua的原表特性来进行自定义框架开发,方便自己的后续的多次开发。网络上也有很多的教程来进行学习,就是遇到问题需要解决的时候,总会找不到办法,这里有点难受。
lua代码
Auto.js解决方案:
这套方案是借助于android手机的无障碍服务进行实现的,根据控件的id进行一系列的事件响应,精准度更高。
优势:
1\. 无需root就可以实现控制手机;
2\. 可在手机中运行,也可以打包成apk运行;
3\. 通过控件id进行控制,准确度非常高,并且自适应分辨率;
劣势:
1\. 对游戏不大友好,因为游戏很多时候控件都不规则,都是一个个画布;
2\. 需要学习js;
3\. 基于英文实现的代码框架;
Auto.js这个解决方案,对于游戏来说并不大友好,虽然也有找图找色等功能,但是使用起来并没有按键或者触动那么方便,并且由于是基于空间id进行控制,并不大适合游戏。
auto.js代码
其他解决方案:
其实还有其他非常多的类似的解决方案,但是大多数都没上面列举的这些被人熟知。
举个例子像python也拥有非常丰富的类库,但是只能适应使用usb连接手机的通过adb进行控制这样的操作,无法生成一个apk来安装到手机中进行操作,我也曾尝试过在手机中模拟一个python环境,但是依赖的类库无法非常方便的移植到手机中,就算静态编译过去也非常的耗时,所以python也能实现但是他很不友好,也很不方便,学习成本也非常高。