前言
出于本人是只懒狗,而飞天前段时间寄了,只能自力更生给自己玩的游戏搞自动化。初步考虑基于Auto.js制作一个简单的世界弹射物语游戏的自动化脚本,能满足日常蝗虫游玩需要。
本文所有代码及资源均同步至github的项目页面。交流群775892832。
ui制作
今天制作一个简单的ui来控制脚本的各项功能,在Auto.Js中,ui界面要在文件开头通过"ui";
来声明。由于需要进行多种功能的执行,考虑采用复选框和下拉框进行功能的选择,一个复选框和下拉框的示例如下
1 | <horizontal> |
运行效果如图所示
通过复选框和下拉框,创建一系列功能选择,以便用户快速选定需要执行的功能。
为了显示美观,同样通过visibility
属性来控制子选项是否显示。
1 | ui.素材.on("check", (checked) => {//勾选素材时显示素材列表 |
效果如图所示
其实今天就只做了素材做好了刷素材部分以后,其他的如法炮制便可,很快就可以依样做出崩坏域、共斗等其他功能。
脚本间传递参数
在计划中,脚本的每个功能都将作为一个模块以单文件执行,那么一个问题就是如何把脚本要做什么传递给相应的脚本。在Auto.Js中给出了events.broadcast
方法来在脚本之间传递参数。events.broadcast
可以发送一个事件广播,它的事件是在脚本间共享的,所有脚本都能发送和监听这些事件,所以就可以通过该方法来在脚本直接传递参数并控制脚本运行。
例如将menu.js
中选择的功能传递至sucai.js
中执行,就可以通过如下方法实现
1 | var sucai = engines.execScriptFile("./sucai.js");//运行刷素材脚本 |
其中sucai.js
的内容为
1 | toastLog("素材启动"); |
运行效果符合预期,在选择水属性(第2项)、50级(第5项)、12次时,顺利发送了属性1等级4次数12并返回了次数9(12-3)。