JSFiddle - React, Tailwind, and code Playground
by Drath
JavaScript
function keypress(keys) {
var timers= {};
document.onkeydown= function(event) {
var key= (event || window.event).keyCode;
if (!(key in keys))
return true;
if (!(key in timers)) {
timers[key]= null;
keys[key]();
//ISSUE IS HERE
timers[key]= setInterval(keys[key], 130+delay-stamina);
}
return false;
};
document.onkeyup= function(event) {
var key= (event || window.event).keyCode;
if (key in timers) {
if (timers[key]!==null)
clearInterval(timers[key]);
delete timers[key];
}
};
window.onblur= function() {
for (key in timers)
if (timers[key]!==null)
clearInterval(timers[key]);
timers= {};
};
};
keypress({
37: function() {
if (directionx != -1) {
directionx = -1;
directiony = 0;
rendermovement(charx,chary,false);
delay-=25;
} else {
move(-1, 0);
}
},
38: function() {
if (directiony != -1) {
directionx = 0;
directiony = -1;
rendermovement(charx,chary,false);
delay-=25;
} else {
move(0, -1);
}
},
39: function() {
if (directionx != 1) {
directionx = 1;
directiony = 0;
rendermovement(charx,chary,false);
delay-=25;
} else {
move(1, 0);
}
},
40: function() {
if (directiony != 1) {
directionx = 0;
directiony = 1;
rendermovement(charx,chary,false);
delay-=25;
} else {
move(0, 1);
}
}
});