|
|
@@ -1,3 +1,6 @@ |
|
|
|
const КОЭФФИЦИЕНТ_ВЫСОТЫ = 1.5; |
|
|
|
|
|
|
|
|
|
|
|
СоздатьОтладочнуюСферуВЦентреКорня = мир => |
|
|
|
{ |
|
|
|
var форма = new THREE.SphereBufferGeometry(0.5, 32, 32); |
|
|
@@ -10,7 +13,35 @@ |
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
РасположитьКамеруСцены = мир => |
|
|
|
{ |
|
|
|
var р = мир.размерПоляФишек; |
|
|
|
var расстояние = р.макс.z - р.мин.z; |
|
|
|
мир.камера.position.y = расстояние * КОЭФФИЦИЕНТ_ВЫСОТЫ; |
|
|
|
мир.камера.position.z = расстояние; |
|
|
|
мир.камера.lookAt(new THREE.Vector3(0, 0, 0)); |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
ЦентрироватьФишкиСцены = мир => |
|
|
|
{ |
|
|
|
var р = мир.размерПоляФишек; |
|
|
|
// Убираем пустоту слева. |
|
|
|
мир.кореньСценыМаджонга.position.x -= р.мин.x; |
|
|
|
мир.кореньСценыМаджонга.position.z -= р.мин.z; |
|
|
|
// Центрируем остаток. |
|
|
|
мир.кореньСценыМаджонга.position.x -= (р.макс.x - р.мин.x) / 2; |
|
|
|
мир.кореньСценыМаджонга.position.z -= (р.макс.z - р.мин.z) / 2; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
ПосчитатьРазмерПоляФишек = мир => |
|
|
|
{ |
|
|
|
var мин = { |
|
|
|
"x": 1000000, |
|
|
@@ -40,12 +71,11 @@ |
|
|
|
макс.z = ф.position.z; |
|
|
|
} |
|
|
|
} |
|
|
|
// Убираем пустоту слева. |
|
|
|
мир.кореньСценыМаджонга.position.x -= мин.x; |
|
|
|
мир.кореньСценыМаджонга.position.z -= мин.z; |
|
|
|
// Центрируем остаток. |
|
|
|
мир.кореньСценыМаджонга.position.x -= (макс.x - мин.x) / 2; |
|
|
|
мир.кореньСценыМаджонга.position.z -= (макс.z - мин.z) / 2; |
|
|
|
|
|
|
|
мир.размерПоляФишек = { |
|
|
|
"мин": мин, |
|
|
|
"макс": макс, |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|