Я пытался сделать покадровую анимацию с помощью таблицы спрайтов, которую я сделал на веб-сайте HTML, и я не мог понять, как заблокировать fps для анимации. Проблема в том, что это всегда происходит с молниеносной скоростью, и я хочу иметь возможность заблокировать его со скоростью ~ 10-15 кадров в секунду. Я пробовал использовать метод Date.now() и метод setInterval, но, похоже, он не работает на данный момент.
То, как я использую эту анимацию, также зависит от проверки массива, чтобы убедиться, что он должен фиксировать анимацию из 4 кадров, которую я сделал. Вот код, который я использовал.
function animateCharacter() {
var canvas = document.getElementById("portrait");
var context = canvas.getContext("2d");
var character = new Image();
character.src = "/assets/spritesheet.jpg";
animate();
function animate() {
context.drawImage(character, shift, 0, width, height, 300, 0, width / 2, height / 2);
if (currentFrame == totalFrames) {
shift = 0;
currentFrame = 0;
}
requestAnimationFrame(animate);
}