我正在制作一个函数,使点击事件发生在 html5 画布上的指定向量处

问题描述 投票:0回答:0

我已经有一段时间没有开发我的游戏引擎了。我一直在测试我的代码库中的一些函数,我注意到我的一个函数不再工作了(或者我忘记了如何使用它?)。基本上这个函数需要一个位置、大小和一个回调函数。然后,当您点击给定的指定位置时,它将允许您使用该回调函数执行一些代码(它还考虑了大小向量,因此您可以使点击区域尽可能大)。

我写了一个 jsFiddle 示例,因此您可以轻松地对其进行测试。正如您在示例中看到的那样,当您单击蓝色框时没有任何反应(假设在控制台中记录“已单击”)。

jsFiddle 示例

let Event = function(parent,event,fn,bool){
    parent.addEventListener(event,fn,bool);
};

// why does not work??? i wrote this years ago and i remember it working.
let clickDetector = function(vectorPos,vectorSize,fn){
    this.event = function(){
        new Event(canvas,"click",function(e){
            let x = e.clientX,
                y = e.clientY;

            if(Math.pow(x-vectorPos.x,vectorSize.y)+
               Math.pow(y-vectorPos.y,vectorSize.x)< 
               Math.pow(vectorSize.x,vectorSize.y)){
                fn();
            }
        },false);
    };
};
javascript html5-canvas
© www.soinside.com 2019 - 2024. All rights reserved.