This commit is contained in:
2021-08-13 15:23:19 +03:00
parent 7dacf10d64
commit 8d61cfbf64
4 changed files with 74 additions and 53 deletions

View File

@@ -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.создать();
}

View File

@@ -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,

View File

@@ -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()
{
/**/мир.ограничитель.обновить();

View File

@@ -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>