求助,关于无限循环找图的问题,跪求大佬帮忙
autojs吧
全部回复
仅看楼主
level 1
TudorLC 楼主
我玩游戏为了偷懒,写了个小脚本,就是循环找图,然后运行一段时间后会把游戏卡死或者运行出错,再不然就不再循环运行,希望大佬帮忙看看哪里有问题
下面是我的代码
if (!requestScreenCapture()) { toast("请求截图失败"); exit();}sleep(500);var img = captureScreen();var que = images.read("./01.png");var jin = images.read("./02.png");var bai = images.read("./03.png");var duique = findImage(img, que);var duijin = findImage(img, jin);var duibai = findImage(img, bai);if (duique) { click(duique.x + 50, duique.y + 50)};if (duijin) { click(duijin.x + 50, duijin.y + 50)};if (duibai) { click(1587, 300)};sleep(100);
que.recycle();img.recycle();jin.recycle();bai.recycle();img=nullque=nulljin=nullbai=null
engines.execScriptFile("./jihuo.js");
toast("扫描中");
(
因为在脚本里面自动循环,它只截图一次,不会重复截图,所以我用了两个脚本相互唤醒。请大神帮忙看看哪里应该改进。
2020年05月07日 23点05分 1
level 12
可以试试多跑几遍再调用激活脚本,就是说5-32行放一个循环里,循环几次再用激活基本,如果不行的话看看你是不是把autojs的自启动给关了
2020年05月11日 05点05分 3
level 1
截图加个延时,我记得是多少时间内的截图操作就是同一张图,最好加一个延时,如果是放while(1)里面的话
2020年05月13日 08点05分 4
level 1
能帮我看看无限循环找图脚本有什么问题?怎么运行只截图了一次?没有循环下去?
2020年05月17日 05点05分 5
你这是一次啊,找到直接就跳出循环了
2020年06月17日 23点06分
break删掉就行了
2020年06月17日 23点06分
这一段的初衷是什么?检测到助力图片就点掉?
2020年06月18日 05点06分
level 7
内存泄漏,每次循环都用recyle回收一下内存
官方文档写了
需要注意的是,image对象创建后尽量在不使用时进行回收,同时避免循环创建大量图片。因为图片是一种占用内存比较大的资源,尽管Auto.js通过各种方式(比如图片缓存机制、垃圾回收时回收图片、脚本结束时回收所有图片)尽量降低图片资源的泄漏和内存占用,但是糟糕的代码仍然可以占用大量内存。
Image对象通过调用recycle()函数来回收。例如:
// 读取图片
var img = images.read("./1.png");
//对图片进行操作
...
// 回收图片
img.recycle();
例外的是,caputerScreen()返回的图片不需要回收。
2022年03月13日 13点03分 6
你的脚本如果像你所说的可以运行,但是过一段时间就卡死了,应该就是这个原因,导致手机内存爆满
2022年03月13日 13点03分
@超级虎哥001 img.recycle();
2022年03月13日 13点03分
@超级虎哥001 可是他的代码不是已经把回收写进去了吗?
2022年03月30日 17点03分
level 1
第一,你这个截图最好要延迟1秒-2秒。第二,if判断后增加一个延时
2022年06月18日 13点06分 7
level 4
容易写
2022年06月23日 13点06分 8
level 1
整个程序,截图权限只要开始的时候请求一次就可以了,第二次请求会卡到这里。只要把if(截图权限)的代码剪切到for循环之外就就行了。
2023年06月20日 01点06分 9
level 4
就写这么点东西还写不好吗?
2023年06月20日 02点06分 10
1