禁用javascript中的键盘

禁用javascript中的键盘,javascript,html,canvas,html5-canvas,Javascript,Html,Canvas,Html5 Canvas,我想知道如何在分数等于5后使键盘失效。其他一切我都很好。我已经完成了所有我需要完成的事情,我只是在键盘上有问题,如果我能在这方面得到一些帮助,我将不胜感激。这让我很难过,所以我想我会得到一些帮助 //Arrow key codes var UP = 38; var DOWN = 40; var RIGHT = 39; var LEFT = 37; //Directions var moveUp = false; var moveDown = false; var moveRight

我想知道如何在分数等于5后使键盘失效。其他一切我都很好。我已经完成了所有我需要完成的事情,我只是在键盘上有问题,如果我能在这方面得到一些帮助,我将不胜感激。这让我很难过,所以我想我会得到一些帮助


    //Arrow key codes
var UP = 38;
var DOWN = 40;
var RIGHT = 39;
var LEFT = 37;

//Directions
var moveUp = false;
var moveDown = false;
var moveRight = false;
var moveLeft = false;

//Add keyboard listeners
window.addEventListener("keydown", function(event)
{
  switch(event.keyCode)
  {
    case UP:
        moveUp = true;
        break;
      
      case DOWN:
        moveDown = true;
        break;
        
      case LEFT:
        moveLeft = true;
        break;  
        
      case RIGHT:
        moveRight = true;
        break; 
  }
}, false);

window.addEventListener("keyup", function(event)
{
  switch(event.keyCode)
  {
    case UP:
        moveUp = false;
        break;
      
      case DOWN:
        moveDown = false;
        break;
        
      case LEFT:
        moveLeft = false;
        break;  
        
      case RIGHT:
        moveRight = false;
        break; 
  }
}, false);

function loadHandler()
{ 
  update();
}

function update()
{
  //The animation loop
  requestAnimationFrame(update, canvas);
  
  //Up
  if(moveUp && !moveDown)
  {
    cat.vy = -5;
  }
  //Down
  if(moveDown && !moveUp)
  {
    cat.vy = 5;
  }
  //Left
  if(moveLeft && !moveRight)
  {
    cat.vx = -5;
  }
  //Right
  if(moveRight && !moveLeft)
  {
    cat.vx = 5;
  }
  
  //Set the cat's velocity to zero if none of the keys are being pressed
  if(!moveUp && !moveDown)
  {
    cat.vy = 0;
  }
  if(!moveLeft && !moveRight)
  {
    cat.vx = 0;
  }
  
  //Move the cat 
  cat.x += cat.vx;
  cat.y += cat.vy;
  
  //Check for a collision between the cat and the monster
  //and change the monster's score when they collide
  if(hitTestRectangle(cat, monster) && score < 5)
  {
    if(!collisionHasOccured)
    {
        score++;
        collisionHasOccured = true;
    }
  }
  else
  {
    collisionHasOccured = false;
  }
  
  if(score === 5)
  {
    message = " - Game Over!";
  }
    
  //Render the sprites  
  render();
}

function hitTestRectangle(r1, r2)
{
  //A variable to determine whether there's a collision
  var hit = false;
  
  //Calculate the distance vector
  var vx = r1.centerX() - r2.centerX();
  var vy = r1.centerY() - r2.centerY();
  
  //Figure out the combined half-widths and half-heights
  var combinedHalfWidths = r1.halfWidth() + r2.halfWidth();
  var combinedHalfHeights = r1.halfHeight() + r2.halfHeight();
  
  //Check for a collision on the x axis
  if(Math.abs(vx) < combinedHalfWidths)
  {
    //A collision might be occuring.
    //Check for a collision on the y axis
    if(Math.abs(vy) < combinedHalfHeights)
    {
      //There's definitely a collision happening
      hit = true;
    }
    else
    {
      //There's no collision on the y axis
      hit = false;
    }   
  }
  else
  {
    //There's no collision on the x axis
    hit = false;
  }
  
  return hit;
}

function render(event)
{ 
  drawingSurface.clearRect(0, 0, canvas.width, canvas.height);
  
  if(sprites.length !== 0)
  {
    for(var i = 0; i < sprites.length; i++)
    {
      var sprite = sprites[i];
      drawingSurface.drawImage
      (
        image, 
        sprite.sourceX, sprite.sourceY, 
        sprite.sourceWidth, sprite.sourceHeight,
        Math.floor(sprite.x), Math.floor(sprite.y), 
        sprite.width, sprite.height
      ); 
    }
  }
  
  drawingSurface.fillText(score + message, monster.x, monster.y - 40);
}

</script>

//箭头键代码
var-UP=38;
var-DOWN=40;
var右=39;
左var=37;
//方向
var moveUp=false;
var-moveDown=false;
var moveRight=false;
var moveLeft=false;
//添加键盘侦听器
window.addEventListener(“按键向下”,函数(事件)
{
开关(event.keyCode)
{
个案:
moveUp=true;
打破
按大小写:
moveDown=true;
打破
案例左:
moveLeft=true;
打破
案例权利:
moveRight=true;
打破
}
},假);
window.addEventListener(“键控”,函数(事件)
{
开关(event.keyCode)
{
个案:
moveUp=false;
打破
按大小写:
moveDown=false;
打破
案例左:
moveLeft=false;
打破
案例权利:
moveRight=false;
打破
}
},假);
函数loadHandler()
{ 
更新();
}
函数更新()
{
//动画循环
requestAnimationFrame(更新,画布);
//向上
如果(上移和下移)
{
cat.vy=-5;
}
//向下
如果(向下移动和向上移动)
{
cat.vy=5;
}
//左
if(左移和右移)
{
cat.vx=-5;
}
//对
if(moveRight&!moveLeft)
{
cat.vx=5;
}
//如果没有按下任何键,则将cat速度设置为零
如果(!moveUp&&!moveDown)
{
cat.vy=0;
}
如果(!moveLeft&!moveRight)
{
cat.vx=0;
}
//移动猫
cat.x+=cat.vx;
y类+=vy类;
//检查猫和怪物之间是否发生碰撞
//当它们碰撞时,改变怪物的分数
如果(命中矩形(猫、怪物)&&score<5)
{
如果(!发生碰撞)
{
分数++;
CollisionHasOccursed=true;
}
}
其他的
{
CollisionHasOccursed=false;
}
如果(分数=5)
{
message=“-游戏结束!”;
}
//渲染精灵
render();
}
函数hitTestRectangle(r1,r2)
{
//用于确定是否存在冲突的变量
var-hit=false;
//计算距离向量
var vx=r1.centerX()-r2.centerX();
变量vy=r1.centerY()-r2.centerY();
//计算出组合的半宽半高
var combinedHalfWidths=r1.halfWidth()+r2.halfWidth();
var combinedHalfHeights=r1.HalfHeights()+r2.HalfHeights();
//检查x轴上是否存在碰撞
if(数学abs(vx)<组合半宽度)
{
//可能发生碰撞。
//检查y轴上是否存在碰撞
if(数学绝对值(vy)<组合半高)
{
//肯定发生了碰撞
命中=真;
}
其他的
{
//y轴上没有碰撞
命中=错误;
}   
}
其他的
{
//x轴上没有碰撞
命中=错误;
}
回击;
}
函数渲染(事件)
{ 
drawingSurface.clearRect(0,0,canvas.width,canvas.height);
如果(sprites.length!==0)
{
对于(变量i=0;i
您只需要向事件侦听器添加一个
if
语句。(如果分数=5)那么什么都不要做。您可以将代码放在
开关
语句的正上方。
编辑 @JasonEnts:

        window.addEventListener("keydown", function(event)
    { if (score < 5) {
      switch(event.keyCode)
      {
        case UP:
            moveUp = true;
            break;
          
          case DOWN:
            moveDown = true;
            break;
            
          case LEFT:
            moveLeft = true;
            break;  
            
          case RIGHT:
            moveRight = true;
            break; 
      }
    }
 }, false);
window.addEventListener(“按键按下”),函数(事件)
{如果(分数<5){
开关(event.keyCode)
{
个案:
moveUp=true;
打破
按大小写:
moveDown=true;
打破
案例左:
moveLeft=true;
打破
案例权利:
moveRight=true;
打破
}
}
},假);

你能分享更多关于HTML的信息吗?你到底想解决什么问题?阅读这个答案,希望它能帮助你。像这样?如果(score==5){window.addEventListener(“keydown”,function(event)(true)}那么,它工作了吗?