|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241 |
-
- const РЕСУРСЫ = "https://git.opengamestudio.org/PuCOBATEJlb/PECYPCbl/raw/branch/master/0000";
- const ФИШКА = "/фишка.gltf";
- const ТЕМА_ОТЛАДОЧНАЯ = "https://git.opengamestudio.org/MAOH/MAOH_TEMA_OTAK/raw/branch/master/0000";
-
-
- // // // //
-
-
- СкрытьПаруВыбранныхФишекПослеЗадержки = мир =>
- {
- setTimeout(
- function() {
- for (var номер in мир.выбранныеФишки)
- {
- var н = мир.выбранныеФишки[номер];
- // Перемещаем фишку на другой слой для исключения её из отрисовки и выбора.
- var ф = мир.фишки[н];
- ф.layers.set(1);
- }
- мир.выбранныеФишки = [];
- },
- 100
- );
- }
-
- // // // //
-
-
- СнятьВыделениеСПервойВыбраннойФишки = мир =>
- {
- var н = мир.выбранныеФишки.shift();
- var ф = мир.фишки[н];
- var г = мир.группы[н];
- var м = мир.материалы[г];
- ф.material = м;
- }
-
-
- // // // //
-
-
- СравнитьПаруВыбранныхФишек = мир =>
- {
- // Удостоверяемся в наличии двух фишек.
- if (мир.выбранныеФишки.length != 2)
- {
- return;
- }
- var н1 = мир.выбранныеФишки[0];
- var н2 = мир.выбранныеФишки[1];
- var г1 = мир.группы[н1];
- var г2 = мир.группы[н2];
- if (г1 == г2)
- {
- мир.уведомить("выбрали пару фишек одной группы");
- }
- else
- {
- мир.уведомить("выбрали пару фишек разных групп");
- }
- };
-
- // // // //
-
-
- ВыделитьВыбраннуюФишку = мир =>
- {
- var н = мир.выбраннаяФишка;
- var ф = мир.фишки[н];
- var г = мир.группы[н];
- var м = мир.выбранныеМатериалы[г];
- ф.material = м;
- };
-
-
- // // // //
-
-
- ВыбратьФишку = мир =>
- {
- //var номер = мир.выбранныйУзел.userData;
- /*
- // Отсекаем выбор одной и той же фишки.
- if (мир.выбраннаяФишка && мир.выбраннаяФишка == номер)
- {
- return;
- }
- мир.выбранныеФишки.push(номер);
- мир.уведомить("выбрали фишку");
- */
- //мир.уведомить("надо попробовать выбрать фишку маджонга");
- };
-
-
- // // // //
-
-
- ПодготовитьФишкуКВыбору = мир =>
- {
- var номер = мир.выбранныйУзел.userData;
- мир.фишкаМаджонгаДляВыбора = номер;
- }
-
-
- // // // //
-
-
- ПодготовитьФишкиКВыбору = мир =>
- {
- мир.выборныеУзлы = мир.фишки;
- };
-
-
- // // // //
-
-
- НазначитьФишкамМатериалы = мир =>
- {
- for (var н in мир.фишки)
- {
- var ф = мир.фишки[н];
- var г = мир.фишкиМаджонга[н]["🚩"];
- var м = мир.материалы[г];
- ф.material = м;
- }
- };
-
-
- // // // //
-
-
- СоздатьФишки = мир =>
- {
- var фишка = мир.полигональныеСетки[РЕСУРСЫ][ФИШКА];
- мир.фишки = [];
- for (var номер in мир.фишкиМаджонга)
- {
- var фм = мир.фишкиМаджонга[номер];
- var ф = фишка.clone();
- ф.userData = номер;
- ф.position.set(фм["📍"][0], 0, фм["📍"][1]);
- мир.фишки.push(ф);
- мир.сцена.add(ф);
- }
- };
-
-
- // // // //
-
-
- ПодготовитьсяКСозданиюФишек = мир =>
- {
- мир.фишкиМаджонга = [
- {
- "📍": [0, 0],
- "🚩": 0,
- },
- {
- "📍": [3, 0],
- "🚩": 0,
- },
- {
- "📍": [0, 3],
- "🚩": 1,
- },
- ];
- };
-
-
- // // // //
-
-
- СоздатьПримерСцены = мир =>
- {
- мир.сцена.background = new THREE.Color(0xFFFFFF);
- мир.камера.position.y = 10;
- мир.камера.position.z = 5;
- мир.камера.lookAt(new THREE.Vector3(0, 0, 0));
-
- мир.свет = new THREE.DirectionalLight(0xFFFFFF, 1);
- мир.свет.position.set(-0.5, 1, 0.5).normalize();
- мир.сцена.add(мир.свет);
- };
-
-
- // // // //
-
-
- СоздатьМатериалыФишек = мир =>
- {
- мир.материалы = [];
- мир.выбранныеМатериалы = [];
- var текстуры = мир.текстуры[ТЕМА_ОТЛАДОЧНАЯ];
- for (var имя in текстуры)
- {
- var текстура = текстуры[имя];
- var материал = new THREE.MeshLambertMaterial({
- map: текстура,
- color: new THREE.Color(0xAAAAAA),
- });
- мир.материалы.push(материал);
- var выбранныйМатериал = new THREE.MeshLambertMaterial({
- map: текстура,
- color: new THREE.Color(0xFFFFFF),
- });
- мир.выбранныеМатериалы.push(выбранныйМатериал);
- }
- };
-
- // // // //
-
-
- ПодготовитьсяКЗагрузкеРесурсов = мир =>
- {
- мир.полигональныеСетки = {
- [РЕСУРСЫ]: {
- [ФИШКА]: null,
- },
- };
-
- мир.текстуры = {
- [ТЕМА_ОТЛАДОЧНАЯ]: { },
- };
- var м = мир.модули.модульПоУказателю(ТЕМА_ОТЛАДОЧНАЯ);
- var файлы = Object.keys(м.структура).sort();
- for (var номер in файлы)
- {
- var файл = файлы[номер];
- мир.текстуры[ТЕМА_ОТЛАДОЧНАЯ][файл] = null;
- }
- };
-
-
- // // // //
-
-
- СкрытьКрутилку = мир =>
- {
- document.getElementById("крутилка").style.display = "none";
- };
|