使用HTML5 Canvas和Javascript单击对象?

时间:2016-05-15 03:54:01

标签: javascript html canvas

我有一个mousedown事件监听器,它运行以下函数:

function getPos(event) {
    var x = event.x;
    var y = event.y;

    x -= canvas.offsetLeft;
    y = canvas.offsetTop;

    for(var checker of board.checkers) {
        if(x >= checker.x + 32 && x <= checker.x - 32) {
            if(y >= checker.y + 32 && y <= checker.y -32) {
                alert("HE CLICKED");
            }
        }
    }
}

由于棋子是圈子,它们的起源位于中心,这就是我检查checker.x + 32或checker.x-32的原因。

由于某种原因,alert("He clicked")没有出现。当我弄乱不平等符号时,我会得到alert("he clicked"),但是在错误的情况下。

有人可以对这个问题有所了解吗?

1 个答案:

答案 0 :(得分:0)

仔细研究你的条件:

if(x >= checker.x + 32 && x <= checker.x - 32) {
    if(y >= checker.y + 32 && y <= checker.y -32) {
        alert("HE CLICKED");
    }
}
  1. 您正在使用&&暗示两个条件必须同时为真 - 这是不可能的,因为您正在检查在检查器边界之外点击

  2. 相反,您应该在检查器的边界内查找点击。

  3. 像这样:

    if(x <= checker.x + 32 && x >= checker.x - 32) {
        if(y <= checker.y + 32 && y >= checker.y -32) {
            alert("HE CLICKED");
        }
    }