/**
*作者冉遗鱼 QQ:244574798
*教程视频地址:https://www.bilibili.com/video/BV1fz421v7NP/
*辅助软件下载:https://wwa.lanzoui.com/b00v03rpc 密码:2oe7
*/
function main() {
inti();//EC一些初始化无障碍服务等
//EC和Aj版本的控制点
let CtrlPt =[[157,342],[166,175],[323,152],[433,200],[470,322],];
//执行贝塞尔
bezier(3000,0.02, CtrlPt);
}
/**
*
-
@param time_m {number} 执行时间 ms 例如 3000
-
@param t {number} 间隔系数 0-1 间, 越小线条线条越圆润,计算量越大, 例如 0.005
-
@param pt {number[][]} 控制点坐标的二维数组 例如 [[137,169],[140,283]]
*/
function bezier(time_ms,t,pt){let fps = 1 / t;
let resultPos=[];//点比线段多1
for (let i = 0; i <= fps; i++)
{
let copyArr = Array.from(pt, row => row.slice()); //拷贝一份 js的数组是引用传递
resultPos[i]= calculateBezier(i*t, copyArr);
}
let touch1 =[];
let _time=time_ms/resultPos.length;//时间间隔touch1.push({“action”: 0, “x”: resultPos[0][0], “y”: resultPos[0][1], “pointer”: 1, “delay”: _time})
for (let i = 1; i <resultPos.length-1 ; i++) {
touch1.push({“action”: 2, “x”: resultPos[i][0], “y”: resultPos[i][1], “pointer”: 1, “delay”: _time})
}
touch1.push({“action”: 1, “x”: resultPos[resultPos.length-1][0], “y”: resultPos[resultPos.length-1][1], “pointer”: 1, “delay”: _time})
let x = multiTouch(touch1, null, null, 30000);
}
/**
*
-
@param t {number} 0 ~ 1的时间
-
@param point2Fs {number[][]}贝塞尔点集合
-
@return {number[]} 返回当前时间下的贝塞尔点
*/
function calculateBezier( t, point2Fs )
{
let len = point2Fs.length;
for (let i = len - 1; i > 0; i–)
{
for (let j = 0; j < i; j++)
{
point2Fs[j][0] = point2Fs[j][0] + (point2Fs[j + 1][0] - point2Fs[j][0]) * t;
point2Fs[j][1] = point2Fs[j][1] + (point2Fs[j + 1][1] - point2Fs[j][1]) * t;
}
}return [ parseInt(point2Fs[0][0]),parseInt(point2Fs[0][1]) ];
}
function autoServiceStart(time) {
for (var i = 0; i < time; i++) {
if (isServiceOk()) {
return true;
}
var started = startEnv();
logd(“第” + (i + 1) + "次启动服务结果: " + started);
if (isServiceOk()) {
return true;
}
}
return isServiceOk();
}
//一些初始化的东西
function inti(){
//如果自动化服务正常
if (!autoServiceStart(3)) {
logd("自动化服务启动失败,无法执行脚本")
exit();
return;
}
var request = image.requestScreenCapture(10000,0);
if (!request) {
request = image.requestScreenCapture(10000,0);
}
logd("申请截图结果... "+request)
if (!request) {
logd("截图申请失败");
return;
}else{
sleep(500);
}
}
main();