|
@@ -0,0 +1,77 @@ |
|
|
|
|
|
function Объекты(события, изображения, тела, слежение) |
|
|
|
|
|
{ |
|
|
|
|
|
this.создать = function() |
|
|
|
|
|
{ |
|
|
|
|
|
this.умолчание = { |
|
|
|
|
|
пр: [0, 0, 40, 20], |
|
|
|
|
|
}; |
|
|
|
|
|
this.задано = {}; |
|
|
|
|
|
события.подписать(this); |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
this.обработатьКлюч = function(ключ, путь, значение) |
|
|
|
|
|
{ |
|
|
|
|
|
if (путь[0] != "объекты") |
|
|
|
|
|
{ |
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
var имя = путь[1]; |
|
|
|
|
|
var свойство = путь.slice(2).join("."); |
|
|
|
|
|
if (!this.задано[имя]) |
|
|
|
|
|
{ |
|
|
|
|
|
this.задано[имя] = {}; |
|
|
|
|
|
} |
|
|
|
|
|
this.задано[имя][свойство] = значение; |
|
|
|
|
|
this.обновитьОбъект(имя); |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
this.обновитьОбъект = function(имя) |
|
|
|
|
|
{ |
|
|
|
|
|
/* |
|
|
|
|
|
var тело = тела.тела[за.тело]; |
|
|
|
|
|
if (!тело) |
|
|
|
|
|
{ |
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
var элемент = изображения.элементы[за.изображение]; |
|
|
|
|
|
var ум = this.умолчание; |
|
|
|
|
|
|
|
|
|
|
|
// Параметры. |
|
|
|
|
|
var скорость = за.скорость ? за.скорость : ум.скорость; |
|
|
|
|
|
var смещениеX = за["смещение.0"] ? за["смещение.0"] : ум.смещение[0]; |
|
|
|
|
|
var смещениеY = за["смещение.1"] ? за["смещение.1"] : ум.смещение[1]; |
|
|
|
|
|
var предел = за.предел ? за.предел : ум.предел; |
|
|
|
|
|
|
|
|
|
|
|
// Текущая позиция. |
|
|
|
|
|
var x0 = 0; |
|
|
|
|
|
if (элемент.dataset.слежениеX) |
|
|
|
|
|
{ |
|
|
|
|
|
x0 = элемент.dataset.слежениеX; |
|
|
|
|
|
} |
|
|
|
|
|
var y0 = 0; |
|
|
|
|
|
if (элемент.dataset.слежениеY) |
|
|
|
|
|
{ |
|
|
|
|
|
y0 = элемент.dataset.слежениеY; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// Целевая позиция. |
|
|
|
|
|
var x1 = тело.position.x + смещениеX; |
|
|
|
|
|
var y1 = тело.position.y + смещениеY; |
|
|
|
|
|
// Radians -> Degrees. |
|
|
|
|
|
var угол = тело.angle * 180 / Math.PI; |
|
|
|
|
|
|
|
|
|
|
|
// Устанавливаемая плавно позиция. |
|
|
|
|
|
var x = this.lerp(x0, x1, скорость, предел); |
|
|
|
|
|
var y = this.lerp(y0, y1, скорость, предел); |
|
|
|
|
|
|
|
|
|
|
|
элемент.dataset.слежениеX = x; |
|
|
|
|
|
элемент.dataset.слежениеY = y; |
|
|
|
|
|
изображения.обновитьРасположение(за.изображение, x, y, угол); |
|
|
|
|
|
*/ |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// Конструктор. |
|
|
|
|
|
this.создать(); |
|
|
|
|
|
}; |