diff --git a/00120.физика.js b/00120.физика.js
index 3ab4556..c01b0ce 100644
--- a/00120.физика.js
+++ b/00120.физика.js
@@ -2,6 +2,9 @@
движок: null,
настройки: {
enableSleeping: true,
+ gravity: {
+ y: 2,
+ },
},
создать: function() {
мир.физика.движок = Matter.Engine.create(мир.физика.настройки);
diff --git a/00125.изображения.js b/00125.изображения.js
new file mode 100644
index 0000000..dd7e6ef
--- /dev/null
+++ b/00125.изображения.js
@@ -0,0 +1,81 @@
+мир.изображения = {
+ умолчание: {
+ x: 0,
+ y: 0,
+ ширина: 100,
+ высота: 100,
+ },
+ задано: {},
+ элементы: {},
+};
+
+
+// // // //
+
+
+мир.ключники.push(function(ключ, путь, значение){
+ if (!ключ.startsWith("изображения"))
+ {
+ return;
+ }
+
+ var имя = путь[1];
+
+ if (!(имя in мир.изображения.задано))
+ {
+ мир.изображения.задано[имя] = {};
+ }
+
+ //var свойство = путь.slice(2).join(".");
+ var свойство = путь[2];
+ мир.изображения.задано[имя][свойство] = значение;
+ обновитьИзображение(путь, имя, свойство, значение);
+});
+
+
+// // // //
+
+
+function обновитьИзображение(путь, имя, свойство, значение)
+{
+ var за = мир.изображения.задано[имя];
+ var ум = мир.изображения.умолчание;
+ var эл = мир.изображения.элементы[имя];
+
+ if (!эл)
+ {
+ эл = document.createElement("div");
+ эл.id = `изображения-${имя}`;
+ эл.style.position = "absolute";
+ эл.style.display = "block";
+ document.body.appendChild(эл);
+ мир.изображения.элементы[имя] = эл;
+ // Свойства по умолчанию.
+ эл.style.left = `${ум.x}px`;
+ эл.style.top = `${ум.y}px`;
+ эл.style.width = `${ум.ширина}px`;
+ эл.style.height = `${ум.высота}px`;
+ }
+
+ if (свойство == "ширина")
+ {
+ эл.style.width = `${за.ширина}px`;
+ }
+ else if (свойство == "высота")
+ {
+ эл.style.height = `${за.высота}px`;
+ }
+ else if (свойство == "x")
+ {
+ эл.style.left = `${за.x}px`;
+ }
+ else if (свойство == "y")
+ {
+ эл.style.top = `${за.y}px`;
+ }
+ else if (свойство == "вид")
+ {
+ var параметр = путь[3];
+ эл.style.setProperty(параметр, значение);
+ }
+}
diff --git a/01300.пример.json.js b/01300.пример.json.js
index efef96a..b9dffaa 100644
--- a/01300.пример.json.js
+++ b/01300.пример.json.js
@@ -1,5 +1,14 @@
мир.разобрать({
заголовок: "К 0.10.0",
+ изображения: {
+ дом: {
+ ширина: 2000,
+ высота: 600,
+ вид: {
+ background: "url(р/сцены/изба.jpg)",
+ },
+ },
+ },
объекты: {
пол: {
x: 1000,
@@ -22,28 +31,7 @@
},
игрок: {
объект: "колобок",
- скорость: [3, 7],
+ скорость: [4, 12],
клавиши: ["ArrowLeft", "ArrowRight", "ArrowUp"],
},
});
-
-function переместитьПерсонажа(объект)
-{
- var вверх = (мир.ввод.клавиши["ArrowUp"] == true);
- var скоростьY = вверх ? -10 : 0;
- var влево = (мир.ввод.клавиши["ArrowLeft"] == true);
- var вправо = (мир.ввод.клавиши["ArrowRight"] == true);
- var скоростьX = 0;
- if (влево)
- {
- скоростьX = -2;
- }
- else if (вправо)
- {
- скоростьX = 2;
- }
- var тело = мир.объекты.тела[объект];
- Matter.Sleeping.set(тело, false);
- Matter.Body.setVelocity(тело, { x: скоростьX, y: скоростьY });
-//console.debug("надо переместитьПерсонажа. клавиши", мир.ввод.клавиши);
-}
diff --git a/index.html b/index.html
index cd8735b..01524a4 100644
--- a/index.html
+++ b/index.html
@@ -21,6 +21,7 @@
+
diff --git a/р/сцены/изба.jpg b/р/сцены/изба.jpg
new file mode 100644
index 0000000..0a5ec04
Binary files /dev/null and b/р/сцены/изба.jpg differ
diff --git a/р/сцены/изба.xcf b/р/сцены/изба.xcf
new file mode 100644
index 0000000..c51c8c7
Binary files /dev/null and b/р/сцены/изба.xcf differ
diff --git a/р/сцены/подпол.jpg b/р/сцены/подпол.jpg
new file mode 100644
index 0000000..738c88f
Binary files /dev/null and b/р/сцены/подпол.jpg differ
diff --git a/р/сцены/подпол.xcf b/р/сцены/подпол.xcf
new file mode 100644
index 0000000..aa85902
Binary files /dev/null and b/р/сцены/подпол.xcf differ