Files
mahjong/код/2019-09-07.js

101 lines
3.5 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

мж.задатьНейтральныйМатериал = 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];
};