私は Canvas をいじっていますが、キャンバス上の私の小さな男の「アニメーション」に問題があります。ボタンを押している間、タイムアウトがスタックするため、彼のアニメーションはすべておかしくなりました。setTimeouts
彼がそんなにばかげているように見えないようにするには、どうすれば制御できますか、ありがとう!
移動に関するコード:
var playerMove = function(direction) {
if (direction === 'left') {
updatePlayer(0, 130, 100, 100, 100, 100, 100);
setTimeout(function() {
updatePlayer(100, 130, 100, 100, 100, 100);
}, 100);
setTimeout(function() {
updatePlayer(180, 130, 100, 100, 100, 100);
}, 200);
setTimeout(function() {
updatePlayer(100, 130, 100, 100, 100, 100);
}, 500);
setTimeout(function() {
updatePlayer(0, 130, 100, 100, 100, 100, 100);
}, 650);
} else if (direction === 'right') {
updatePlayer(0, 230, 100, 100, 100, 100, 100);
setTimeout(function() {
updatePlayer(100, 230, 100, 100, 100, 100);
}, 100);
setTimeout(function() {
updatePlayer(180, 230, 100, 100, 100, 100);
}, 200);
setTimeout(function() {
updatePlayer(100, 230, 100, 100, 100, 100);
}, 500);
setTimeout(function() {
updatePlayer(0, 230, 100, 100, 100, 100, 100);
}, 650);
}
};
function movePlayer(e) {
if (e.which === 37) {
active = true;
playerMove('left');
player.destX -= 2;
} else if (e.which === 39) {
active = true;
playerMove('right');
player.destX += 2;
}
}
document.addEventListener('keydown', function(e) {
movePlayer(e);
});