问题出在setTimeout没有clearTimeout上,
见下面红字部分,
if (bx==ax && by==ay){
clearTimeout(obj.movement);
obj=false;
return;
}
你是递增或递减2的,但是你下面却判断的是相等,
那假设bx=11,ax=12的时候,它就一直重复做+2与-2操作了,
导致了死循环,
应改为
if ((bx==ax || bx == ax + 1) && (by==ay || by == ay + 1)){
clearTimeout(obj.movement);
obj=false;
return;
}
见下面红字部分,
if (bx==ax && by==ay){
clearTimeout(obj.movement);
obj=false;
return;
}
你是递增或递减2的,但是你下面却判断的是相等,
那假设bx=11,ax=12的时候,它就一直重复做+2与-2操作了,
导致了死循环,
应改为
if ((bx==ax || bx == ax + 1) && (by==ay || by == ay + 1)){
clearTimeout(obj.movement);
obj=false;
return;
}
注意,CSDN会自动将||改成全角的,请在复制代码的时候改回半角