изо
This commit is contained in:
@@ -2,6 +2,9 @@
|
||||
движок: null,
|
||||
настройки: {
|
||||
enableSleeping: true,
|
||||
gravity: {
|
||||
y: 2,
|
||||
},
|
||||
},
|
||||
создать: function() {
|
||||
мир.физика.движок = Matter.Engine.create(мир.физика.настройки);
|
||||
|
||||
81
00125.изображения.js
Normal file
81
00125.изображения.js
Normal file
@@ -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(параметр, значение);
|
||||
}
|
||||
}
|
||||
@@ -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("надо переместитьПерсонажа. клавиши", мир.ввод.клавиши);
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
<script src="00100.мир.js"></script>
|
||||
<script src="00110.заголовок.js"></script>
|
||||
<script src="00120.физика.js"></script>
|
||||
<script src="00125.изображения.js"></script>
|
||||
<script src="00130.объекты.js"></script>
|
||||
<script src="00140.ввод.js"></script>
|
||||
<script src="00150.игрок.js"></script>
|
||||
|
||||
BIN
р/сцены/изба.jpg
Normal file
BIN
р/сцены/изба.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 112 KiB |
BIN
р/сцены/изба.xcf
Normal file
BIN
р/сцены/изба.xcf
Normal file
Binary file not shown.
BIN
р/сцены/подпол.jpg
Normal file
BIN
р/сцены/подпол.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 26 KiB |
BIN
р/сцены/подпол.xcf
Normal file
BIN
р/сцены/подпол.xcf
Normal file
Binary file not shown.
Reference in New Issue
Block a user