From 854806b47487bab23497fe352650b9b51886108e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=93=D0=BB=D0=B0=D0=B2=D1=80=D0=B5=D0=B4=20=7C=20Glavred?= Date: Thu, 24 Dec 2020 15:06:42 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=BE=D1=82=20=D0=93=D0=BB=D0=B0=D0=B2=D1=80?= =?UTF-8?q?=D0=B5=D0=B4=D0=B0=20=D0=93=D0=B8=D1=82=D0=96=D0=A1=20|=20Chang?= =?UTF-8?q?es=20of=20GitJS=20Glavred?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 0000 | 3 +- ⨐.js | 10 +++ 🎬.js | 153 ---------------------------------------------- 🎬.череда | 11 ---- 📖.js | 57 +++++++++++------ 5 files changed, 48 insertions(+), 186 deletions(-) create mode 100644 ⨐.js delete mode 100644 🎬.js delete mode 100644 🎬.череда diff --git a/0000 b/0000 index 9cac0a1..10b029c 100644 --- a/0000 +++ b/0000 @@ -2,6 +2,5 @@ 0.1.0 https://git.opengamestudio.org/MAOH/OTMA -x /🎬.js -/🎬.череда +x /⨐.js x /📖.js \ No newline at end of file diff --git a/⨐.js b/⨐.js new file mode 100644 index 0000000..e308aee --- /dev/null +++ b/⨐.js @@ -0,0 +1,10 @@ +засечьВремя = (мир, маркер) => +{ + if (!мир.времена) { + мир.времена = []; + } + мир.времена.push({ + "время": new Date(), + "маркер": маркер, + }); +}; \ No newline at end of file diff --git a/🎬.js b/🎬.js deleted file mode 100644 index 47df495..0000000 --- a/🎬.js +++ /dev/null @@ -1,153 +0,0 @@ -const КОЭФФИЦИЕНТ_ВЫСОТЫ = 1.5; - - -СоздатьОтладочнуюСферуВЦентреКорня = мир => -{ - var форма = new THREE.SphereBufferGeometry(0.5, 32, 32); - var сфера = new THREE.Mesh(форма); - сфера.material = new THREE.MeshLambertMaterial({ color: 0xAA00AA }); - мир.кореньСценыМаджонга.add(сфера); -}; - - -// // // // - - -РасположитьКамеруСцены = мир => -{ - 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, - "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; - } - } - - мир.размерПоляФишек = { - "мин": мин, - "макс": макс, - }; -}; - - -// // // // - - -ЗадатьМатериалыФишкамСцены = мир => -{ - for (var н in мир.фишкиСцены) - { - var ф = мир.фишкиСцены[н]; - var г = мир.фишкиМаджонга[н]["🚩"]; - var м = мир.материалыФишекСцены[г]; - ф.material = м; - } -}; - - -// // // // - - -УбратьСтарыеФишкиСцены = мир => -{ - if (мир.сценаМаджонга.children.length) - { - мир.сценаМаджонга.remove(мир.кореньСценыМаджонга); - } - мир.кореньСценыМаджонга = new THREE.Group(); - мир.сценаМаджонга.add(мир.кореньСценыМаджонга); - мир.фишкиСцены = []; -}; - - -// // // // - - -СоздатьНовыеФишкиСцены = мир => -{ - var фишка = мир.модельФишкиСцены; - var границы = фишка.geometry.boundingBox; - var размеры = [ - (границы.max.x - границы.min.x) / 2, - (границы.max.z - границы.min.z) / 2, - (границы.max.y - границы.min.y), - ]; - var отступ = мир.отступМеждуФишкамиСцены; - - for (var номер in мир.фишкиМаджонга) - { - // Узел сцены. - var фм = мир.фишкиМаджонга[номер]; - var ф = фишка.clone(); - ф.userData = номер; - мир.фишкиСцены.push(ф); - мир.кореньСценыМаджонга.add(ф); - // Расположение. - var п = фм["📍"]; - var слой = п[0]; - var ряд = п[1]; - var столбец = п[2]; - ф.position.x = столбец * (размеры[0] + отступ); - ф.position.z = ряд * (размеры[1] + отступ); - ф.position.y = слой * (размеры[2] + отступ); - } -}; - - -// // // // - - -ПодготовитьСценуМаджонга = мир => -{ - мир.сценаМаджонга = new THREE.Group(); - мир.отступМеждуФишкамиСцены = 0.02; -}; \ No newline at end of file diff --git a/🎬.череда b/🎬.череда deleted file mode 100644 index dd1cc49..0000000 --- a/🎬.череда +++ /dev/null @@ -1,11 +0,0 @@ -ручной пуск - подготовить сцену маджонга - -надо создать фишки в сцене - убрать старые фишки сцены - создать новые фишки сцены - посчитать размер поля фишек - центрировать фишки сцены - расположить камеру сцены - задать материалы фишкам сцены -# создать отладочную сферу в центре корня \ No newline at end of file diff --git a/📖.js b/📖.js index fcebc18..65f7fc0 100644 --- a/📖.js +++ b/📖.js @@ -1,35 +1,52 @@ -СкрытьУбранныеФишкиВСцене = мир => -{ - for (var номер in мир.убранныеФишкиМаджонга) - { - var н = мир.убранныеФишкиМаджонга[номер]; - // Перемещаем фишку на другой слой для исключения из отрисовки и выбора. - var ф = мир.фишкиСцены[н]; - ф.layers.set(1); - } -} +const ДЛИТЕЛЬНОСТЬ_ОТОБРАЖЕНИЯ = 3000; // // // // -ВыделитьВыбранныеФишкиВСцене = мир => +ВывестиВремена = мир => { - for (var номер in мир.выбранныеФишкиМаджонга) + var сообщения = []; + for (var н in мир.времена) { - var н = мир.выбранныеФишкиМаджонга[номер]; - var ф = мир.фишкиСцены[н]; - var г = мир.фишкиМаджонга[н]["🚩"]; - var м = мир.выбранныеМатериалыФишекСцены[г]; - ф.material = м; + var э = мир.времена[н]; + if (н >= 1) + { + var разница = э.время - мир.времена[н - 1].время; + var сообщение = `${э.маркер}`; + if (разница > 0) + { + сообщение = `${э.маркер} ${разница}`; + } + console.debug(сообщение); + сообщения.push(сообщение); + } + } + мир.времена = []; + UIkit.notification(сообщения.join(", "), {timeout: ДЛИТЕЛЬНОСТЬ_ОТОБРАЖЕНИЯ}); }; // // // // - -СоздатьФишкиВСцене = мир => +ЗасечьВремяД = мир => +{ + засечьВремя(мир, "Д"); +}; +ЗасечьВремяГ = мир => +{ + засечьВремя(мир, "Г"); +}; +ЗасечьВремяВ = мир => +{ + засечьВремя(мир, "В"); +}; +ЗасечьВремяБ = мир => +{ + засечьВремя(мир, "Б"); +}; +ЗасечьВремяА = мир => { - мир.уведомить("надо создать фишки в сцене"); + засечьВремя(мир, "А"); }; \ No newline at end of file