@@ -2,6 +2,9 @@ | |||||
движок: null, | движок: null, | ||||
настройки: { | настройки: { | ||||
enableSleeping: true, | enableSleeping: true, | ||||
gravity: { | |||||
y: 2, | |||||
}, | |||||
}, | }, | ||||
создать: function() { | создать: function() { | ||||
мир.физика.движок = Matter.Engine.create(мир.физика.настройки); | мир.физика.движок = Matter.Engine.create(мир.физика.настройки); | ||||
@@ -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", | заголовок: "К 0.10.0", | ||||
изображения: { | |||||
дом: { | |||||
ширина: 2000, | |||||
высота: 600, | |||||
вид: { | |||||
background: "url(р/сцены/изба.jpg)", | |||||
}, | |||||
}, | |||||
}, | |||||
объекты: { | объекты: { | ||||
пол: { | пол: { | ||||
x: 1000, | x: 1000, | ||||
@@ -22,28 +31,7 @@ | |||||
}, | }, | ||||
игрок: { | игрок: { | ||||
объект: "колобок", | объект: "колобок", | ||||
скорость: [3, 7], | |||||
скорость: [4, 12], | |||||
клавиши: ["ArrowLeft", "ArrowRight", "ArrowUp"], | клавиши: ["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="00100.мир.js"></script> | ||||
<script src="00110.заголовок.js"></script> | <script src="00110.заголовок.js"></script> | ||||
<script src="00120.физика.js"></script> | <script src="00120.физика.js"></script> | ||||
<script src="00125.изображения.js"></script> | |||||
<script src="00130.объекты.js"></script> | <script src="00130.объекты.js"></script> | ||||
<script src="00140.ввод.js"></script> | <script src="00140.ввод.js"></script> | ||||
<script src="00150.игрок.js"></script> | <script src="00150.игрок.js"></script> | ||||