Browse Source

поправить мерцание при начале анимации

tags/4.1
parent
commit
53604765d8
5 changed files with 14 additions and 13 deletions
  1. +1
    -1
      4.1/игра/075.Анимация.js
  2. +0
    -2
      4.1/игра/080.Анимации.js
  3. +2
    -0
      4.1/игра/160.Слежение.js
  4. +11
    -9
      4.1/игра/180.Объекты.js
  5. +0
    -1
      4.1/игра/190.Состояния.js

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

@@ -35,7 +35,7 @@ function Анимация(элемент, параметры)
this.номерВоспроизведения = 0;
this.колвоВоспроизведений = воспроизведений;
this.размерКадра = [к0, к1];
this.поГоризонтаи = кадровПоГоризонтали > кадровПоВертикали;
this.поГоризонтали = кадровПоГоризонтали > кадровПоВертикали;
this.номерКадра = 0;
this.колвоКадров = this.поГоризонтали ? кадровПоГоризонтали : кадровПоВертикали;
// Возможно, в будущем стоит заменить частные таймеры на один общий.


+ 0
- 2
4.1/игра/080.Анимации.js View File

@@ -8,7 +8,6 @@ function Анимации(события)

this.запустить = function(имя, элемент)
{
/**/console.debug("ИГР Анимации.запустить", имя, элемент, this.анимации);
// Останавливаем прошлый экземпляр этой анимации на том же элементе.
this.остановить(имя, элемент);
// Запускаем новый экземпляр анимации на том же элементе.
@@ -42,7 +41,6 @@ function Анимации(события)
this.анимации[ключ].остановить();
delete this.анимации[ключ];
}
/**/console.debug("ИГР Анимации.остановить", имя, элемент, this.анимации);
}

// Конструктор.


+ 2
- 0
4.1/игра/160.Слежение.js View File

@@ -74,6 +74,7 @@ function Слежение(состояние, изображения, тела)
var x = this.lerp(x0, x1, скорость, предел);
var y = this.lerp(y0, y1, скорость, предел);

/*
// Ничего не делаем, если разница ничтожна.
let ничтожно = 0.00001;
if (
@@ -86,6 +87,7 @@ function Слежение(состояние, изображения, тела)
) {
return;
}
*/

// Иначе применяем новые значения.
элемент.dataset.слежениеX = x;


+ 11
- 9
4.1/игра/180.Объекты.js View File

@@ -45,10 +45,9 @@ function Объекты(состояние, события)
свойство == "вид" ||
свойство == "анимация"
) {
let пр = this.пр(имя);
let вид = this.задано[имя]["вид"];
let анимация = this.задано[имя]["анимация"];
this.обновитьИзображение(производноеИмя, пр, вид, анимация);
this.обновитьИзображение(производноеИмя, null, вид, анимация);
}
};

@@ -96,22 +95,25 @@ function Объекты(состояние, события)

this.обновитьВидАнимацию = function(имя)
{
let пр = this.пр(имя);
let вид = this.задано[имя]["вид"];
let анимация = this.задано[имя]["анимация"];
let производноеИмя = `объекты-${имя}`;
this.обновитьИзображение(производноеИмя, пр, вид, анимация);
this.обновитьИзображение(производноеИмя, null, вид, анимация);
};

this.обновитьИзображение = function(имя, пр, вид, анимация)
{
var описание = {
вид: вид,
анимация: анимация,
};
if (пр)
{
описание["пр"] = пр;
}
состояние.разобрать({
изображения: {
[имя]: {
пр: пр,
вид: вид,
анимация: анимация,
},
[имя]: описание,
},
});
};


+ 0
- 1
4.1/игра/190.Состояния.js View File

@@ -7,7 +7,6 @@ function Состояния(состояние)

this.применить = function(имя)
{
console.debug("ИГР Состояния.применить", имя, this.задано[имя]);
состояние.разобратьВыпрямленный(this.задано[имя]);
}



Loading…
Cancel
Save