Browse Source

ограниченные анимации

tags/4.1
parent
commit
b5696a5adb
1 changed files with 12 additions and 2 deletions
  1. +12
    -2
      4.1/игра/075.Анимация.js

+ 12
- 2
4.1/игра/075.Анимация.js View File

@@ -32,9 +32,11 @@ function Анимация(элемент, параметры)
let кадровПоГоризонтали = Math.floor(ширинаДиапазона / ширинаКадра);
let кадровПоВертикали = Math.floor(высотаДиапазона / высотаКадра);

this.номерКадра = 0;
this.номерВоспроизведения = 0;
this.колвоВоспроизведений = воспроизведений;
this.размерКадра = [к0, к1];
this.поГоризонтаи = кадровПоГоризонтали > кадровПоВертикали;
this.номерКадра = 0;
this.колвоКадров = this.поГоризонтали ? кадровПоГоризонтали : кадровПоВертикали;
// Возможно, в будущем стоит заменить частные таймеры на один общий.
// Вдруг в браузерах есть ограничение на количество таймеров от одной страницы.
@@ -54,11 +56,19 @@ function Анимация(элемент, параметры)
this.номерКадра += 1;
if (this.номерКадра >= this.колвоКадров)
{
this.номерВоспроизведения += 1;
this.номерКадра = 0;
if (
this.колвоВоспроизведений > 0 &&
this.номерВоспроизведения >= this.колвоВоспроизведений
) {
this.остановить();
return;
}
}

let x = this.поГоризонтали ? this.номерКадра * this.размерКадра[0] : 0;
let y = this.поГоризонтали ? 0 : this.номерКадра * this.размерКадра[1];

элемент.style.backgroundPosition = `${x}px ${y}px`;
};



Loading…
Cancel
Save