Прежде всего, чтобы цикл for работал, вам нужно использовать точки с запятой вместо запятых в строке 24, чтобы они выглядели так: for (i = 0; i < catPosition.length; i++) {
Что вы можете сделать для достижения желаемого эффекта, это установитьx и y внутри setInterval и обновляют i вместо прохождения цикла for каждый раз, когда кошка просто застрянет в одном месте.
Так что это может выглядеть примерно так:
var tID;
function catimate() {
// start position for the image slicer
var position = 512;
// 150 ms of interval for setInterval()
const interval = 150;
var x = 0;
var y = 0;
var i = 0;
var catPosition =
[[0, 0],
[512, 0],
[1024, 0],
[1536, 0],
[0, 256],
[512, 256],
[1024, 256],
[1536, 256]];
tID = setInterval(() => {
document.getElementById("image").style.backgroundPosition = `${x}px ${y}px`;
x = catPosition[i][0];
y = catPosition[i][1];
console.log(x, y);
i++;
}
, interval);
}
catimate()
это должно заставить кошку двигаться только на одну позицию за каждый вызов интервала.