|
|
@@ -29,6 +29,60 @@ |
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
СоздатьОтладочнуюСферуВЦентреКорня = мир => |
|
|
|
{ |
|
|
|
var форма = new THREE.SphereBufferGeometry(0.5, 32, 32); |
|
|
|
var сфера = new THREE.Mesh(форма); |
|
|
|
сфера.material = new THREE.MeshLambertMaterial({ color: 0xAA00AA }); |
|
|
|
мир.кореньСценыМаджонга.add(сфера); |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
ЦентрироватьФишкиСцены = мир => |
|
|
|
{ |
|
|
|
var мин = { |
|
|
|
"x": 1000000, |
|
|
|
"z": 1000000, |
|
|
|
}; |
|
|
|
var макс = { |
|
|
|
"x": 0, |
|
|
|
"z": 0, |
|
|
|
}; |
|
|
|
for (var номер in мир.фишкиСцены) |
|
|
|
{ |
|
|
|
const ф = мир.фишкиСцены[номер]; |
|
|
|
if (ф.position.x < мин.x) |
|
|
|
{ |
|
|
|
мин.x = ф.position.x; |
|
|
|
} |
|
|
|
if (ф.position.x > макс.x) |
|
|
|
{ |
|
|
|
макс.x = ф.position.x; |
|
|
|
} |
|
|
|
if (ф.position.z < мин.z) |
|
|
|
{ |
|
|
|
мин.z = ф.position.z; |
|
|
|
} |
|
|
|
if (ф.position.z > макс.z) |
|
|
|
{ |
|
|
|
макс.z = ф.position.z; |
|
|
|
} |
|
|
|
} |
|
|
|
// Убираем пустоту слева. |
|
|
|
мир.кореньСценыМаджонга.position.x -= мин.x; |
|
|
|
мир.кореньСценыМаджонга.position.z -= мин.z; |
|
|
|
// Центрируем остаток. |
|
|
|
мир.кореньСценыМаджонга.position.x -= (макс.x - мин.x) / 2; |
|
|
|
мир.кореньСценыМаджонга.position.z -= (макс.z - мин.z) / 2; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
ЗадатьМатериалыФишкамСцены = мир => |
|
|
|
{ |
|
|
|
for (var н in мир.фишкиСцены) |
|
|
|