Browse Source

изо

master
parent
commit
0eca32f3c1
8 changed files with 95 additions and 22 deletions
  1. +3
    -0
      00120.физика.js
  2. +81
    -0
      00125.изображения.js
  3. +10
    -22
      01300.пример.json.js
  4. +1
    -0
      index.html
  5. BIN
      р/сцены/изба.jpg
  6. BIN
      р/сцены/изба.xcf
  7. BIN
      р/сцены/подпол.jpg
  8. BIN
      р/сцены/подпол.xcf

+ 3
- 0
00120.физика.js View File

@@ -2,6 +2,9 @@
движок: null,
настройки: {
enableSleeping: true,
gravity: {
y: 2,
},
},
создать: function() {
мир.физика.движок = Matter.Engine.create(мир.физика.настройки);


+ 81
- 0
00125.изображения.js View 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(параметр, значение);
}
}

+ 10
- 22
01300.пример.json.js View File

@@ -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("надо переместитьПерсонажа. клавиши", мир.ввод.клавиши);
}

+ 1
- 0
index.html View File

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

Before After
Width: 2000  |  Height: 600  |  Size: 112KB

BIN
р/сцены/изба.xcf View File


BIN
р/сцены/подпол.jpg View File

Before After
Width: 2000  |  Height: 600  |  Size: 26KB

BIN
р/сцены/подпол.xcf View File


Loading…
Cancel
Save