Member 13960971 Ответов: 1

Корабли не двигаются при нажатии клавиш со стрелками в javascript space invaders game


Привет всем, в настоящее время я создаю игру javacript space invaders, и хав наткнулся на проблему. Всякий раз, когда я нажимаю клавиши со стрелками вправо и влево, корабль не движется вправо или влево.

Вот мой код
<pre>
function startGame(){
    gamearea.start();
  }
  function movePlayer(event){
    if(!player.moving){
      moveInterval = setInterval(function(){player.move(event);}, 50);
      player.moving = true;
    }
  }
  function stopPlayer(event){
    clearInterval(moveInterval);
    player.moving = false;
  }
  var gamearea = {
    canvas: document.createElement("canvas"),
    start: function(){
      this.canvas.width = 1100;
      this.canvas.height = 600;
      this.canvas.style.border = "3px solid gray";
      this.canvas.style.display = "block";
      this.canvas.style.margin = "auto";
      document.body.insertBefore(this.canvas, document.body.childNodes[0]);
      this.context=this.canvas.getContext("2d");
      player.draw();
      window.addEventListener("keydown", movePlayer, event);
      window.addEventListener("keydown", stopPlayer, event);
    }
  }
  var player={
    x:40, y:580, moving:false,
    draw:function(){
      gamearea.context.fillStyle="ivory";
      gamearea.context.fillRect(this.x+60, this.y, 80, 20);
      gamearea.context.fillRect(this.x+95, this.y-20, 10, 20);
    },
    update: function(d){
      this.x+=d;
    },
    move: function(ev){
      gamearea.context.clearRect(this.x, this.y, 80, 20);
      gamearea.context.clearRect(this.x+35, this.y-20, 10, 20);
      if(ev.keycode== 37 && this.x>0) this.update(-15);
      else if(ev.keycode == 39 && this+80<1100) this.update(15);
      this.draw();
    }
  }


Что я уже пробовал:

Я не пробовал много, но из того, что я пробовал, это проверка ошибок на вкладке проверки/консоли и переписывание моего кода в случае орфографической ошибки.

1 Ответов

Рейтинг:
0

Richard MacCutchan

Вы уже опубликовали это на форуме Javascript. Пожалуйста, не пересекайте столб.