Javascript холст слайды при использовании анимации спрайт-листа - PullRequest
2 голосов
/ 17 октября 2019

Я пытаюсь анимировать, используя лист спрайта. Однако при изменении направления движения игрока анимация, кажется, скользит по листу спрайта к анимации, а не прыгает прямо к спрайту, который я хочу использовать.

Вот моя функция рендеринга:

 function renderPlayer(me, player) {
   const { x, y, momentum } = player;
   const canvasX = canvas.width / 2 + x - me.x;
   const canvasY = canvas.height / 2 + y - me.y;

   context.save();
   context.translate(canvasX, canvasY);

   context.drawImage(
     getAsset('sasuke_sheet.png'),
     0,
     PLAYER_HEIGHT*momentum,
     PLAYER_WIDTH,
     PLAYER_HEIGHT,
     -PLAYER_WIDTH,
     -PLAYER_HEIGHT,
     PLAYER_WIDTH*2,
     PLAYER_HEIGHT*2,
   );
   context.restore();
}

Вот значения, которые я устанавливаю для импульса, равного:

if(this.keys[0]) {
  this.momentum = 3;
  this.y -= dt * this.speed;
}
if(this.keys[1]) {
  this.momentum = 1;
  this.x -= dt * this.speed;
}
if(this.keys[2]) {
  this.momentum = 0;
  this.y += dt * this.speed;
}
if(this.keys[3]) {
  this.momentum = 2;
  this.x += dt * this.speed;
}

спрайт

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...