点击画布形状的条件?

时间:2015-03-05 12:30:09

标签: javascript canvas conditional-statements

我不知道为什么在其他部分我的情况是假的,这是我的代码地址: 我不知道这种情况不能正常工作(js部分第49行)? fiddle

<div id="ways" style="width:1000px;margin:0 auto;height:100%;">
    <canvas id="canvas" width="1000" height="1000"></canvas>
</div>

1 个答案:

答案 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;
            }
        }

只会检查第一个圈子 - 因为您看到ifelse两个函数都会导致中断。

这就是为什么你的代码只能在前3次点击中正常运行,之后唯一没有失败的圈子是第一个(不知道应用程序的用途是什么)虽然)。

要修复它,最好迭代所有6个圈子,看看是否有其中一个圈子被点击,仅在此之后显示错误提示,以防没有圈子点击。


此处是首先检查所有点击的圈子的版本,如果没有点击任何圈子,则会抛出提醒:http://jsfiddle.net/5pq23me2/6/