@@ -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, | x: 0, | ||||
@@ -2,15 +2,29 @@ function Пуск() | |||||
{ | { | ||||
this.запустить = function() | this.запустить = function() | ||||
{ | { | ||||
var корень = document.getElementById("корень"); | |||||
мир.изображения = new Изображения(корень); | |||||
мир.физика.создать(); | мир.физика.создать(); | ||||
мир.столкновения.создать(); | мир.столкновения.создать(); | ||||
мир.звуки = new Звуки(мир.ключники, мир.события); | мир.звуки = new Звуки(мир.ключники, мир.события); | ||||
мир.движение = new Движение(мир.ключники); | мир.движение = new Движение(мир.ключники); | ||||
/**/мир.ограничитель = new Ограничитель(); | /**/мир.ограничитель = new Ограничитель(); | ||||
/**/мир.рт = new РучноеТело(мир.события); | /**/мир.рт = new РучноеТело(мир.события); | ||||
this.настроитьОбработкуКлючей(); | |||||
this.обновить(); | this.обновить(); | ||||
}; | }; | ||||
this.настроитьОбработкуКлючей = function() | |||||
{ | |||||
мир.ключники.push(function(ключ, путь, значение) { | |||||
if (путь[0] == "изображения1") | |||||
{ | |||||
мир.изображения.обработатьКлюч(ключ, путь, значение); | |||||
} | |||||
}); | |||||
}; | |||||
this.обновить = function() | this.обновить = function() | ||||
{ | { | ||||
/**/мир.ограничитель.обновить(); | /**/мир.ограничитель.обновить(); | ||||
@@ -69,6 +69,7 @@ | |||||
<script src="100.мир.js"></script> | <script src="100.мир.js"></script> | ||||
<script src="105.заголовок.js"></script> | <script src="105.заголовок.js"></script> | ||||
<script src="120.физика.js"></script> | <script src="120.физика.js"></script> | ||||
<script src="130.изображения.js"></script> | |||||
<script src="140.изображения.js"></script> | <script src="140.изображения.js"></script> | ||||
<!-- | <!-- | ||||
<script src="150.тела.js"></script> | <script src="150.тела.js"></script> | ||||