Browse Source

Добавить код

master
parent
commit
420d737d76
1 changed files with 100 additions and 0 deletions
  1. +100
    -0
      код/2019-09-07.js

+ 100
- 0
код/2019-09-07.js View File

@@ -0,0 +1,100 @@
мж.задатьНейтральныйМатериал = function()
{
var мат = муром.материалы.создатьМатериал("N");
var изо = муром.ресурсы.ресурс("tex.stub");
мат.задатьТекстуру("image", изо);
var вер = муром.ресурсы.ресурс("ver").содержимое;
var фра = муром.ресурсы.ресурс("fra").содержимое;
мат.задатьШейдеры(вер, фра);
мж.сцена.задатьМатериал(мат);
};

мж.разобратьРаскладку = function()
{
eval(муром.ресурсы.ресурс("Layout").содержимое);
var содержимое = муром.ресурсы.ресурс("lay").содержимое;
мж.раскладка = new Раскладка();
мж.раскладка.разобрать(содержимое);
};

мж.фишки = [];
мж.создатьФишки = function()
{
eval(муром.ресурсы.ресурс("Tile").содержимое);
for (var номер in мж.раскладка.позиции)
{
var ф = new Фишка();
ф.позиция = мж.раскладка.позиции[номер];
мж.фишки.push(ф);
}
};

мж.размерФишки = {
"ширина": 2.0,
"высота": 3.0,
"глубина": 1.0,
};
мж.создатьУзлыФишек = function()
{
const шагФишки = 2.0;
const коэффициенты = {
"x": мж.размерФишки.ширина / шагФишки,
"y": -мж.размерФишки.высота / шагФишки,
"z": мж.размерФишки.глубина,
};
var мод = муром.ресурсы.ресурс("mod");
for (var номер in мж.фишки)
{
var имя = номер.toString();
var узел = муром.узлы.создатьУзел(имя, мод);
мж.сцена.добавитьДитя(узел);
var ф = мж.фишки[номер];
var п = ф.позиция;
узел.позиция = [
п[2] * коэффициенты.x,
п[1] * коэффициенты.y,
п[0] * коэффициенты.z,
];
ф.узел = узел;
}
};

мж.центрироватьСцену = function()
{
var границы = {
"лево": 1000,
"право": -1000,
"верх": -1000,
"низ": 1000,
};
for (var номер in мж.фишки)
{
const ф = мж.фишки[номер];
const x = ф.узел.позиция[0];
const y = ф.узел.позиция[1];
if (x < границы.лево)
{
границы.лево = x;
}
if (x > границы.право)
{
границы.право = x;
}
if (y < границы.низ)
{
границы.низ = y;
}
if (y > границы.верх)
{
границы.верх = y;
}
}

const ширина = границы.право - границы.лево + мж.размерФишки.ширина;
const высота = границы.верх - границы.низ + мж.размерФишки.высота;
мж.сцена.позиция = [-ширина / 2.0, 0, высота / 2.0];
};

Loading…
Cancel
Save