Javascript 检查图形是否在画布html5中接触

Javascript 检查图形是否在画布html5中接触,javascript,html,html5-canvas,addeventlistener,Javascript,Html,Html5 Canvas,Addeventlistener,我仍然是javascript的高手。我正试图建立一个吃豆人类型的游戏,并试图找出如何检查我的头像是否触及边界或没有击中。我可以设计移动声明,使其仅在移动不受墙壁限制的情况下工作,但这将是混乱和不方便的,特别是如果我经常尝试更改地图。 有什么建议吗? 我的代码是: function draw() { ctx.clearRect(0,0,600,600); ctx.beginPath(); ctx.arc(x,y,r,0,2*Math.PI); ctx.fill(); } fun

我仍然是javascript的高手。我正试图建立一个吃豆人类型的游戏,并试图找出如何检查我的头像是否触及边界或没有击中。我可以设计移动声明,使其仅在移动不受墙壁限制的情况下工作,但这将是混乱和不方便的,特别是如果我经常尝试更改地图。 有什么建议吗? 我的代码是:

function draw() {
  ctx.clearRect(0,0,600,600);
  ctx.beginPath();
  ctx.arc(x,y,r,0,2*Math.PI);
  ctx.fill();
}


function listen() {
  document.addEventListener("keydown", function(event) {
    switch (event.keyCode) {
      case 37 : {
        if (x - r > 0) {
          x = x - 2;
        }
        break;
      }
      case 38 : {
        if (y - r > 0) {
          y = y - 2;
        }
        break;
      }
      case 39 : {
        if (x + r < 600) {
          x = x + 2;
        }
        break;
      }
      case 40 : {
        if (y + r < 600) {
          y = y + 2;
        }
        break;
      }
    }
  });
}

var myvar = setInterval(function () { draw() } , 300);
var yourvar = setInterval(function() { listen() }, 1000);

</script>
</body>
</html>
函数绘图(){
ctx.clearRect(0,0600600);
ctx.beginPath();
弧(x,y,r,0,2*Math.PI);
ctx.fill();
}
函数listen(){
文档.添加的事件列表器(“键控”,函数(事件){
开关(event.keyCode){
案例37:{
如果(x-r>0){
x=x-2;
}
打破
}
案例38:{
如果(y-r>0){
y=y-2;
}
打破
}
案例39:{
如果(x+r<600){
x=x+2;
}
打破
}
案例40:{
如果(y+r<600){
y=y+2;
}
打破
}
}
});
}
var myvar=setInterval(函数(){draw()},300);
var yourvar=setInterval(函数(){listen()},1000);

`

如果您想快速开发过程,我建议您试试我的画布框架:如果您想快速开发过程,我建议您试试我的画布框架: