@@ -0,0 +1,59 @@ | |||
function Изображения(корень) | |||
{ | |||
this.создать = function() | |||
{ | |||
this.умолчание = { | |||
x: 0, | |||
y: 0, | |||
ширина: 100, | |||
высота: 100, | |||
угол: 0, | |||
}; | |||
this.задано = {}; | |||
this.элементы = {}; | |||
}; | |||
this.обработатьКлюч = function(ключ, путь, значение) | |||
{ | |||
var имя = путь[1]; | |||
var свойство = путь.slice(2).join("."); | |||
if (!this.задано[имя]) | |||
{ | |||
this.задано[имя] = {}; | |||
} | |||
this.задано[имя][свойство] = значение; | |||
this.обновитьЭлемент(имя); | |||
}; | |||
this.создатьИлиПолучитьЭлемент = function(имя) | |||
{ | |||
var эл = this.элементы[имя]; | |||
if (эл) | |||
{ | |||
return эл; | |||
} | |||
var ум = this.умолчание; | |||
эл = document.createElement("div"); | |||
эл.id = `изображения-${имя}`; | |||
эл.style.position = "absolute"; | |||
эл.style.display = "block"; | |||
// Свойства по умолчанию. | |||
эл.style.width = `${ум.ширина}px`; | |||
эл.style.height = `${ум.высота}px`; | |||
эл.style.transform = `translate(${ум.x}px, ${ум.y}px) rotate(${ум.угол}rad)`; | |||
this.элементы[имя] = эл; | |||
корень.appendChild(эл); | |||
return эл; | |||
}; | |||
this.обновитьЭлемент = function(имя) | |||
{ | |||
var эл = this.создатьИлиПолучитьЭлемент(имя); | |||
}; | |||
// Конструктор. | |||
this.создать(); | |||
} |
@@ -1,56 +1,3 @@ | |||
/* | |||
function Объекты(ключники) { | |||
this.создать = function() { | |||
this.умолчание = { | |||
x: 0, | |||
y: 0, | |||
ширина: 40, | |||
высота: 20, | |||
физика: { | |||
isStatic: true, | |||
}, | |||
}; | |||
this.задано = {}; | |||
this.тела: {}, | |||
this.имена: {}, | |||
this.элементы: {}, | |||
this.свойстваТела: ["x", "y", "ширина", "высота", "физика"], | |||
this.задано = {}; | |||
this.аудио = {}; | |||
var тут = this; | |||
ключники.push(function(ключ, путь, значение) { | |||
тут.обработатьКлюч(ключ, путь, значение); | |||
}); | |||
}; | |||
this.обработатьКлюч = function(ключ, путь, значение) { | |||
if (!путь[0].startsWith("звуки")) | |||
{ | |||
return; | |||
} | |||
var имя = путь[1]; | |||
var свойство = путь.slice(2).join("."); | |||
if (!this.задано[имя]) | |||
{ | |||
this.задано[имя] = {}; | |||
} | |||
this.задано[имя][свойство] = значение; | |||
}; | |||
// Конструктор. | |||
this.создать(); | |||
} | |||
*/ | |||
мир.объекты = { | |||
умолчание: { | |||
x: 0, | |||
@@ -2,15 +2,29 @@ function Пуск() | |||
{ | |||
this.запустить = function() | |||
{ | |||
var корень = document.getElementById("корень"); | |||
мир.изображения = new Изображения(корень); | |||
мир.физика.создать(); | |||
мир.столкновения.создать(); | |||
мир.звуки = new Звуки(мир.ключники, мир.события); | |||
мир.движение = new Движение(мир.ключники); | |||
/**/мир.ограничитель = new Ограничитель(); | |||
/**/мир.рт = new РучноеТело(мир.события); | |||
this.настроитьОбработкуКлючей(); | |||
this.обновить(); | |||
}; | |||
this.настроитьОбработкуКлючей = function() | |||
{ | |||
мир.ключники.push(function(ключ, путь, значение) { | |||
if (путь[0] == "изображения1") | |||
{ | |||
мир.изображения.обработатьКлюч(ключ, путь, значение); | |||
} | |||
}); | |||
}; | |||
this.обновить = function() | |||
{ | |||
/**/мир.ограничитель.обновить(); | |||
@@ -69,6 +69,7 @@ | |||
<script src="100.мир.js"></script> | |||
<script src="105.заголовок.js"></script> | |||
<script src="120.физика.js"></script> | |||
<script src="130.изображения.js"></script> | |||
<script src="140.изображения.js"></script> | |||
<!-- | |||
<script src="150.тела.js"></script> | |||