如何自动玩游戏和手游脚本?
实施原则:
比如一个游戏任务,你需要在不同的手机屏幕上进行点击、滑动,甚至输入文字、发送语音等一系列动作,而这些操作其实都是会在手机中记录这些动作的文件,文件中存储了一个又一个旗语。这些信号再根据不同厂商的设置反馈给上层,上层会根据反馈信息转换成统一识别的事件,事件最终会响应应用。并对信息进行相应的处理,最终呈现给用户并实现。这些动作可以帮助我们通过一些现有的工具或者解决方案来实现自动游戏的功能。
一般实现方法:
1.通过USB连接电脑,然后通过ADB(一个安卓调试工具,当然iOS里也有类似的工具)远程控制手机;
2.通过安装一个应用程序来控制手机中的其他应用程序。简单来说,就是生成一个手机应用,在手机中运行后,通过这个应用直接操作其他应用;
我们了解实现方法,那么应该使用什么工具或解决方案来帮助我们实现它呢?
简易语言解决方案:
首先来说说这种被大多数人熟知,却被“正统”程序员顶撞的编程语言。
这是一种用中文编程的语言。可以说是让大部分人摆脱了“英语魔咒”。很多人认为学编程其实就是学英语,或者说英语不够好,学不了编程。这其实是一种错误的理解。这是后话。等我有空了再和大家分享如何摆脱这个诅咒。
优势:
1.中华文化编程,毕竟中文是我们的母语,更容易理解;
2.游戏相关领域有非常成熟的框架或者介质支持库;
3.使用这种解决方案的人很多,遇到问题很容易找到解决方案;
缺点:
1.代码的编译速度与其他语言相比非常慢;(对于现在的电脑硬件来说,其实没什么大不了的。)
2.会被其他编程语言鄙视,太本地化,没有这种国际感;
3.收费;虽然作者的初衷是推广中文编程,但推广要花钱也无可厚非。
4.易语言需要一定的学习,比其他解法稍微难一点;
一般来说,易语言解决方案因为是中文的,有大量现成的知识库支持,很容易实现功能,所以一直是作为中控的脚本,很少用来生成app(有app解决方案,但是不稳定,不讨论)。
关键向导解决方案:
案例法师可以说是这方面历史悠久的杰出前辈。上手非常简单,甚至还有录制视频然后转换成脚本的录制功能。当然,制作一个优秀的剧本是需要一定的学习的。
优势:
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原有的表格特性开发一个自定义框架要好,方便后续开发。网上也有很多教程可以学习,就是需要解决问题的时候,总会无解,这里有点难受。
Auto.js解决方案:
该方案利用android手机的无障碍服务实现,根据控件的id做出一系列事件响应,准确率较高。
优势:
1.不用root就可以控制手机;
2.可以在手机里运行,也可以打包成apk
3.由控制id控制,精度高,分辨率自适应;
缺点:
1.对游戏不是很友好,因为游戏的控件很多情况下是不规则的,都是画布;
2.需要学习js;
3.基于英语的代码框架;
Auto.js,一个解决方案,对游戏不太友好。虽然也有找图找色的功能,但是使用起来没有按键或者触摸那么方便,而且因为是基于空间id控制的,所以不适合游戏。
其他解决方案:
事实上,还有许多其他类似的解决方案,但大多数都不如上面列出的那些方案那样广为人知。
比如python也有非常丰富的类库,但是只能适应用usb连接手机,通过adb控制的操作,无法生成一个apk安装在手机中进行操作。我曾经尝试过在手机里模拟一个python环境,但是依赖类库不能很方便的移植到手机上,甚至静态编译以前都很费时,所以python可以实现,但是不友好,不方便,学习成本很高。