Есть что-то типа игры
https://codepen.io/CitizenOne/pen/RjJPBp
При нажатии W персонаж должен двигаться, тобишь спрайт меняется с определенным интервалом (1000ms). Но у меня спрайт меняется с огромной скоростью. В секунду раз 10 меняется как минимум. В чем проблема? Как исправить?
Код, описывающий поведение спрайта:
var position = ['-8px 0', '-140px 0', '-256px 0', '-387px 0', '-526px 0', '-646px 0'] //Позициии спрайтов
$('html').keydown(function( event ) {
if ( event.which == 87 ) {
var i=0;
setInterval(function(){
$('#sprite').css({
'background-position' : position[i]
});
if(i==position.length){
i=0;
}
i++;
}, 1000);
}
});
ВНИМАНИЕ!
Проблему выше исправил. Там куча таймеров запускалось.
Проблема теперь в следующем:
Как сделать задержку между сменой спрайта? Код теперь выглядит вот так. Мне нужна какая-то задержка.
var position = ['-8px 0', '-140px 0', '-256px 0', '-387px 0', '-526px 0', '-646px 0']
var i=0;
$('html').keydown(function( event ) {
if ( event.which == 87 ) {
//setInterval(function(){
$('#sprite').css({
'background-position' : position[i]
});
if(i==position.length){
i=0;
}
i++;
// }, 1000);
}
});