63 lines
1.8 KiB
JavaScript
63 lines
1.8 KiB
JavaScript
УбратьСтарыеФишкиСцены = мир =>
|
|
{
|
|
if (мир.сценаМаджонга.children.length)
|
|
{
|
|
мир.сценаМаджонга.remove(мир.сценаМаджонга.children[0]);
|
|
}
|
|
var корень = new THREE.Group();
|
|
мир.сценаМаджонга.add(корень);
|
|
мир.фишкиСцены = [];
|
|
};
|
|
|
|
|
|
// // // //
|
|
|
|
|
|
СоздатьНовыеФишкиСцены = мир =>
|
|
{
|
|
var фишка = мир.модельФишкиСцены;
|
|
var границы = фишка.geometry.boundingBox;
|
|
var размеры = [
|
|
(границы.max.x - границы.min.x) / 2,
|
|
(границы.max.z - границы.min.z) / 2,
|
|
//границы.max.y - границы.min.y,
|
|
];
|
|
var отступ = мир.отступМеждуФишкамиСцены;
|
|
|
|
for (var номер in мир.фишкиМаджонга)
|
|
{
|
|
// Узел сцены.
|
|
var фм = мир.фишкиМаджонга[номер];
|
|
var ф = фишка.clone();
|
|
ф.userData = номер;
|
|
мир.фишкиСцены.push(ф);
|
|
мир.сценаМаджонга.add(ф);
|
|
// Расположение.
|
|
var п = фм["📍"];
|
|
var слой = п[0];
|
|
var ряд = п[1];
|
|
var столбец = п[2];
|
|
ф.position.x = столбец * (размеры[0] + отступ);
|
|
ф.position.z = ряд * (размеры[1] + отступ);
|
|
ф.position.y = слой;
|
|
}
|
|
};
|
|
|
|
|
|
// // // //
|
|
|
|
|
|
СоздатьФишкиВСцене = мир =>
|
|
{
|
|
мир.уведомить("надо создать фишки в сцене");
|
|
};
|
|
|
|
|
|
// // // //
|
|
|
|
|
|
ПодготовитьСценуМаджонга = мир =>
|
|
{
|
|
мир.сценаМаджонга = new THREE.Group();
|
|
мир.отступМеждуФишкамиСцены = 0.02;
|
|
}; |