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

135
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

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

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

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

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

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

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

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

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

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

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

167