|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243 |
-
-
- // // // //
-
-
- ВыбратьТемуФишекОтладочную = мир =>
- {
- мир.выбраннаяТема = "отладочная|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;
- };
-
|