Добавить код
This commit is contained in:
100
код/2019-09-07.js
Normal file
100
код/2019-09-07.js
Normal 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];
|
||||
};
|
||||
Reference in New Issue
Block a user