// // // // ВыбратьТемуФишекОтладочную = мир => { мир.выбраннаяТема = "отладочная|debug"; //мир.уведомить("выбрали тему"); }; // // // // ВыбратьРаскладкуX = мир => { мир.выбраннаяРаскладка = "X_shaped"; мир.уведомить("выбрали раскладку"); }; // // // // ИзменитьРазмерОтрисовщикаThreeJS = мир => { var ширина = window.innerWidth * мир.масштаб; var высота = window.innerHeight * мир.масштаб; мир.камера.aspect = ширина / высота; мир.камера.updateProjectionMatrix(); мир.отрисовщик.setSize(ширина, высота); var размер = мир.масштаб * 100; мир.канва.style = ` max-width: ${размер}%; max-height: ${размер}%; width: ${размер}%; height: ${размер}%; `; }; // // // // ЗадатьОтладочныйМасштаб = мир => { мир.масштаб = 3; мир.уведомить("изменили масштаб"); }; // // // // ВключитьОтслеживаниеНажатий = мир => { мир.отслеживатьНажатия = true; }; // // // // ОтключитьОтслеживаниеНажатий = мир => { мир.отслеживатьНажатия = false; }; // // // // ИсправитьОтслеживаниеНажатийНаIOS = мир => { // https://stackoverflow.com/a/31459240/3404710 мир.отрисовщик.domElement.style.cursor = "pointer"; }; // // // // ПодготовитьсяКОтслеживаниюНажатий = мир => { мир.отслеживатьНажатия = false; // Палец. window.addEventListener( "touchstart", function(событие) { сообщитьОНажатии(мир, событие.touches[0]); } ); // Мышь. window.addEventListener( "click", function(событие) { сообщитьОНажатии(мир, событие); } ); }; // // // // ЦентрироватьСцену = мир => { var мин = { "x": 0, "z": 0, }; 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 - мин.x) / 2; мир.корень.position.z -= (макс.z - мин.z) / 2; }; // // // // РазобратьРаскладкуKMahjongg = мир => { мир.раскладкаKMahjongg.позиции = разобратьРаскладкуKMahjongg(мир.раскладкаKMahjongg.содержимое); }; // // // // ЗагрузитьРесурсыСцены = мир => { мир.уведомить("надо загрузить ресурсы сцены"); }; // // // // ПодготовитьСцену = мир => { var коэффициент = 2; var расстояние = 14; мир.камера.position.y = расстояние * коэффициент; мир.камера.position.z = расстояние; мир.камера.lookAt(new THREE.Vector3(0, 0, 0)); мир.свет = new THREE.DirectionalLight(0xffffff, 1); мир.свет.position.set(-0.5, 1, 0.5).normalize(); мир.сцена.add(мир.свет); }; // // // // СоздатьЗагрузчикТекстур = мир => { мир.загрузчикТекстур = new THREE.TextureLoader(); }; // // // // СоздатьЗагрузчикGLTF = мир => { мир.загрузчикGLTF = new THREE.GLTFLoader(); }; // // // // НастроитьThreeJS = мир => { мир.сцена = new THREE.Scene(); мир.сцена.background = new THREE.Color(0xFFFFFF); мир.камера = new THREE.PerspectiveCamera(45, 1, 0.1, 1000); мир.ловецНажатий = new THREE.Raycaster(); мир.отрисовщик = new THREE.WebGLRenderer({canvas: мир.канва, antialias: true}); }; // // // // СоздатьКанвуThreeJS = мир => { мир.канва = document.createElement("canvas"); мир.канва.id = "канва-threejs"; мир.канва.style = ` position: absolute; left: 0; top: 0; width: 100%; height: 100%; `; var первый = document.body.firstChild; if (первый) { document.body.insertBefore(мир.канва, первый); } else { document.body.appendChild(мир.канва); } }; // // // // СоздатьМасштаб = мир => { мир.масштаб = 1; };