Я пытаюсь анимировать, используя лист спрайта. Однако при изменении направления движения игрока анимация, кажется, скользит по листу спрайта к анимации, а не прыгает прямо к спрайту, который я хочу использовать.
Вот моя функция рендеринга:
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;
}
спрайт