我不知道为什么在其他部分我的情况是假的,这是我的代码地址: 我不知道这种情况不能正常工作(js部分第49行)? fiddle
<div id="ways" style="width:1000px;margin:0 auto;height:100%;">
<canvas id="canvas" width="1000" height="1000"></canvas>
</div>
答案 0 :(得分:0)
当您的turnclicking
变量变为3+时,此部分:
while (circle = circles[i++]) {
context.beginPath();
context.arc(circle.x, circle.y, circle.radius, 0, 2 * Math.PI);
if (context.isPointInPath(x, y) && (circle.clicked && (cnt == 0))) {
cnt++;
console.log("Cnt1: " + cnt);
break;
} else {
alert("You can't go there! " + (circle.clicked && (cnt == 0)) + " " + context.isPointInPath(x, y) + " " + x + " " + y);
break;
}
}
只会检查第一个圈子 - 因为您看到if
和else
两个函数都会导致中断。
这就是为什么你的代码只能在前3次点击中正常运行,之后唯一没有失败的圈子是第一个(不知道应用程序的用途是什么)虽然)。
要修复它,最好迭代所有6个圈子,看看是否有其中一个圈子被点击,仅在此之后显示错误提示,以防没有圈子点击。
此处是首先检查所有点击的圈子的版本,如果没有点击任何圈子,则会抛出提醒:http://jsfiddle.net/5pq23me2/6/