Создаем виртуального персонажа на javascript (версия 2)

Здравствуйте, давайте создадим помощника с помощью ещё одного javascript кода.

Скачать исходники для статьи можно ниже

Спрайт для анимации помощника возьмем следующий:

В спрайте 28 изображений (тайлов). Размер спрайта 1995 × 1848, соответственно размер тайла ширина 1995/7 = 285 и высота 1848/4 = 462 – зададим эти цифры в коде ниже.

Код анимации:

<canvas id="canvas" width="500" height="500"></canvas>

<script>
var canvas = document.getElementById('canvas');
var context = canvas.getContext('2d');

var image = new Image();

var drawTile = function(x, y, tile, width, height) {
    context.drawImage(image, (tile % 7) * width, Math.floor(tile / 7) * height, width, height, x, y, width, height);
};

image.onload = function() {
    // draw all 28 tiles:
    var i = 0;
    setInterval(function() {
        context.clearRect(0,0,500,500);
        drawTile(0, 0, i, 285, 462);
        i++;
        if (i > 27) i = 0;
    }, 85);
}
image.src = 'http://1jurnal.ru/wp-content/uploads/2018/06/villis2.png';
</script>

Теперь давайте добавим клики по нашему виртуальному помощнику и при каждом новом клике зададим какие картинки (тайлы) спрайта необходимо показать:

Спрайт поменяем на следующий:

Каждые 14 изображений (тайлов) меняют цвет.

В спрайте 56 изображений (тайлов). Размер спрайта 1985 × 3656, соответственно размер тайла ширина 1985/7 = 285 и высота 3656/8 = 456 – зададим эти цифры в коде ниже.

<div id='klik' onclick='klik()'>
<canvas id="canvas" width="500" height="500"></canvas>
</div>
<script>
var canvas = document.getElementById('canvas');
var context = canvas.getContext('2d');

var image = new Image();

var drawTile = function(x, y, tile, width, height) {
    context.drawImage(image, (tile % 7) * width, Math.floor(tile / 7) * height, width, height, x, y, width, height);
};
var i=0;
var t=13;
var k = 1;

function klik(){
			    
			if (k==1) {
			  i=14;
			  t=27;
			  }
		    	if (k==2){
		    	  i=28;
		    	  t=41;
		    	  }
			if (k==3) {
			  i=42;
			  t=55;
			  }
			if (k==4) {
			  i=0;
			  t=13;
			  k = 0;
			  }
			  k = k + 1;
		}

image.onload = function() {
    // draw all 12 tiles:
    setInterval(function() {
        context.clearRect(0,0,500,500);
        drawTile(0, 0, i, 285, 456);
        i++;
        if (i > t) {
            i = t;
            
}
    }, 85);
}
image.src = 'https://mnogoblog.ru/wp-content/uploads/2018/06/villis5.png';

</script>

Теперь при крике на виртуального помощника будет меняется анимация – помощник будет менять цвет.

На этом всё! Красивых вам сайтов!

Введите свой email адрес для того, чтобы подписаться на мой блог:


knopkisoc

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *