как создать анимацию на javascript?

79
14 июня 2021, 14:20

на днях смотрел как создать игру на джаваскрипт так скажем практиковался и тут проблема нужно создать анимацию что бы картинка менялась на другую объясню все точно.Я добавил канвас елемент

var cvs = document.getElementById("canvas");

потом начал создавать и добавлять картинки

var bird = new Image();
var bg = new Image();
var fg = new Image();
var pipeUp = new Image();
var pipeBottom = new Image();

bg.src = "img/bg.png";
bird.src = "img/bird.png";
fg.src = "img/fg.png";
pipeUp.src = "img/pipeUp.png";
pipeBottom.src = "img/pipeBottom.png";

начал их рисовать

 function draw() {

ctx.drawImage(bg, 0, 0);
     ctx.drawImage(fg, 0, cvs.height - fg.height);
     ctx.drawImage(bird, 10, 100);
    requestAnimationFrame(draw);
    }
    bird.onload = draw;

скажите как сделать так что бы картинка менялась после нажатия на определёную клавишу прошу с объяснением .

Answer 1

Допустим, переключать нужно будет клавишей с кодом 39: (стрелка вправо)

<img id=myimage src="img/bird.png" /> 
<script> 
var images = ["bird", "bg", "fg", "pipeup", "pipeBottom"]; 
var index = 0; 
document.onkeydown = function(e){ 
if(e.keyCode == 39){ 
	index ++; 
	if(index >= images.length) index = 0; 
	document.getElementById("myimage").src = "img/" + images[index] + ".png"; 
} 
} 
</script>

Правда, тоже без canvas.

READ ALSO
Передать на сервер файлы Vuejs + Laravel

Передать на сервер файлы Vuejs + Laravel

как передать на сервер файлы и обработать их?

74
Событие после повторного выбора файла в input

Событие после повторного выбора файла в input

Для обработки события, которое возникает после выбора файла, я использую ивент change:

78
Проблема с REST-api WordPress

Проблема с REST-api WordPress

При POST-запросе к /media/, то есть загрузке медиафайла, вылетает исключение TimeoutError, мол не загружена картинкаВ итоге, несмотря на эту ошибку, эта...

92
Вызовы деструктора класса

Вызовы деструктора класса

Почему компилятор вызывает сначала деструктор В,а потом АПочему одного деструктора В не хватает ? И есть разница в данных записях:

109