изо
This commit is contained in:
@@ -2,6 +2,9 @@
|
|||||||
движок: null,
|
движок: null,
|
||||||
настройки: {
|
настройки: {
|
||||||
enableSleeping: true,
|
enableSleeping: true,
|
||||||
|
gravity: {
|
||||||
|
y: 2,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
создать: function() {
|
создать: function() {
|
||||||
мир.физика.движок = Matter.Engine.create(мир.физика.настройки);
|
мир.физика.движок = 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",
|
заголовок: "К 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>
|
||||||
|
|||||||
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