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