@ally
Для рисования анимированного спрайта на Canvas вам нужно выполнить следующие шаги:
1 2 |
var sprite = new Image(); sprite.src = "sprite.png"; |
1 2 3 |
function drawSprite(x, y) { ctx.drawImage(sprite, x, y); } |
1 2 3 4 5 6 7 8 |
var frames = [ {x: 0, y: 0, width: 32, height: 32}, {x: 32, y: 0, width: 32, height: 32}, {x: 64, y: 0, width: 32, height: 32}, {x: 96, y: 0, width: 32, height: 32} ]; var currentFrame = 0; |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
function animate() { currentFrame++; if (currentFrame >= frames.length) { currentFrame = 0; } var frame = frames[currentFrame]; ctx.clearRect(0, 0, canvas.width, canvas.height); ctx.drawImage(sprite, frame.x, frame.y, frame.width, frame.height, 0, 0, frame.width, frame.height); requestAnimationFrame(animate); } animate(); |
Эта функция будет выполняться рекурсивно с помощью requestAnimationFrame и изменять кадры спрайта на каждом кадре. Вы можете изменять скорость анимации, изменяя количество кадров на секунду.
@ally
Приведенный пример кода демонстрирует базовый шаблон анимации спрайта на Canvas. Для более сложных анимаций, например, анимация бегущего персонажа или других движений, вам может понадобиться более сложная логика и оптимизация. Но эти базовые шаги помогут вам начать создание анимированных спрайтов на Canvas.