From 02b215f285760d79665d629f7dece7bc6ea4c06f 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: Mon, 18 Jan 2021 12:47:17 +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 | 2 +- 🏁.js | 482 +--------------------------------------------- 🏁.череда | 97 +--------- 3 files changed, 3 insertions(+), 578 deletions(-) diff --git a/0000 b/0000 index d938027..2a1974d 100644 --- a/0000 +++ b/0000 @@ -1,5 +1,5 @@ МАОН -1.0.1 +1.0.2 https://git.opengamestudio.org/MAOH/MAOH x /🎬.js diff --git a/🏁.js b/🏁.js index 5968e93..390bb0a 100644 --- a/🏁.js +++ b/🏁.js @@ -1,481 +1 @@ -const ТЕМА_ПО_УМОЛЧАНИЮ = "https://git.opengamestudio.org/MAOH/TEMA_M1K/raw/branch/master/0000"; -const РАСК_ПО_УМОЛЧАНИЮ = "https://git.opengamestudio.org/MAOH/PACK_M1/raw/branch/master/0000"; - - -// // // // - - -ЗадатьКоличествоФишекДляОтображения = мир => -{ - var всего = мир.фишкиМаджонга.length; - var доступно = Object.keys(мир.индексыФишекМаджонга).length; - var убрано = всего - доступно; - мир.количествоФишекМаджонга = `${убрано}/${всего}`; -}; - - -// // // // - - -УменьшитьМасштаб = мир => -{ - мир.масштаб -= 0.5; - if (мир.масштаб < 1) - { - мир.масштаб = 1; - } - мир.уведомить("изменили масштаб"); -}; - - -// // // // - - -УвеличитьМасштаб = мир => -{ - мир.масштаб += 0.5; - мир.уведомить("изменили масштаб"); -}; - - -// // // // - - -РазрешитьВыборФишек = мир => -{ - мир.отслеживатьНажатияВРисователе = true; -}; - - -// // // // - - -ЗапретитьВыборФишек = мир => -{ - мир.отслеживатьНажатияВРисователе = false; -}; - - -// // // // - - -ОбновитьСчётчикКадров = мир => -{ - var время = Math.floor(мир.времяРисования / 1000.0); - - // Первый вызов. Создаём. - if (!мир.счётчикКадров) - { - var счётчик = document.createElement("div"); - счётчик.style = "position: fixed; left: 0; bottom: 0;"; - document.body.appendChild(счётчик); - мир.счётчикКадров = счётчик; - мир.счётчикКадровВремя = время; - мир.счётчикКадровРазы = 0; - return; - } - - // Последующие вызовы. - ++мир.счётчикКадровРазы; - if (время - мир.счётчикКадровВремя) - { - мир.счётчикКадров.innerHTML = мир.счётчикКадровРазы; - мир.счётчикКадровВремя = время; - мир.счётчикКадровРазы = 0; - } -}; - - -// // // // - - -ИспользоватьВыбраннуюТему = мир => -{ - var э = мир.списокТем[мир.номерВыбраннойТемыМаджонга]; - var файлыТемы = мир.реестрМаджонга["🀄"][э[1]]["📁"]; - мир.настройкиМаджонга["🀄/📦"] = э[1]; - мир.настройкиМаджонга["🀄/📁"] = файлыТемы[42]; - мир.уведомить("изменили настройки маджонга"); -}; - - -// // // // - - -ИспользоватьВыбраннуюРаскладку = мир => -{ - var э = мир.списокРаскладок[мир.номерВыбраннойРаскладкиМаджонга]; - мир.настройкиМаджонга["📍/📦"] = э[1]; - мир.настройкиМаджонга["📍/📁"] = э[0]; - мир.уведомить("изменили настройки маджонга"); -}; - - -// // // // - - -ВывестиПоражение = мир => -{ - console.debug("ПОРАЖЕНИЕ"); -}; - - -// // // // - - -ВывестиПобеду = мир => -{ - console.debug("ПОБЕДА"); -}; - - -// // // // - - -ЗадатьФишкуДляВыбора = мир => -{ - var номер = мир.выбранныйУзел.userData; - мир.фишкаМаджонгаДляВыбора = номер; -} - - -// // // // - - -ПодготовитьФишкиКВыбору = мир => -{ - мир.выборныеУзлы = мир.фишкиСцены; -}; - - -// // // // - - -ПодготовитьсяКСозданиюФишек = мир => -{ - var настройки = мир.настройкиМаджонга; - var позиции = мир.позицииФишек; - - var фишки = []; - var группа = 0; - for (var номер in позиции) - { - var п = позиции[номер]; - фишки.push({ - "📍": [п[0], п[1], п[2]], - "🚩": группа, - }); - if (номер % 2) - { - ++группа; - if (группа > 41) - { - группа = 0; - } - } - }; - - мир.фишкиМаджонга = фишки; - мир.модельФишкиСцены = мир.полигональныеСетки[настройки["🀄/📦"]][настройки["🀄/📁"]]; - мир.сцена.add(мир.сценаМаджонга); -}; - - -// // // // - - -ПеремешатьПозицииФишек = мир => -{ - var настройки = мир.настройкиМаджонга; - var м = мир.модули.модульПоУказателю(настройки["📍/📦"]); - var содержимое = м.содержимое[настройки["📍/📁"]]; - var было = разобратьРаскладкуKMahjongg(содержимое); - var стало = []; - - // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random#Getting_a_random_integer_between_two_values - function getRandomInt(min, max) { - min = Math.ceil(min); - max = Math.floor(max); - return Math.floor(Math.random() * (max - min) + min); //The maximum is exclusive and the minimum is inclusive - } - - // Перемешиваем. - while (было.length) - { - var н = getRandomInt(0, было.length); - стало.push(было[н]); - было.splice(н, 1); - } - - мир.позицииФишек = стало; -}; - - -// // // // - - -СоздатьФишки = мир => -{ - мир.уведомить("надо создать фишки"); -}; - - -// // // // - - -СоздатьМатериалыФишек = мир => -{ - var настройки = мир.настройкиМаджонга; - - мир.материалыФишекСцены = []; - мир.выбранныеМатериалыФишекСцены = []; - - var текстуры = мир.текстуры[настройки["🀄/📦"]]; - for (var имя in текстуры) - { - var текстура = текстуры[имя]; - var материал = new THREE.MeshLambertMaterial({ - map: текстура, - color: new THREE.Color(0xCCCCCC), - }); - мир.материалыФишекСцены.push(материал); - var выбранныйМатериал = new THREE.MeshLambertMaterial({ - map: текстура, - color: new THREE.Color(0xFFFFFF), - }); - мир.выбранныеМатериалыФишекСцены.push(выбранныйМатериал); - } -}; - - -// // // // - - -ПодготовитьсяКЗагрузкеРесурсов = мир => -{ - var настройки = мир.настройкиМаджонга; - - мир.полигональныеСетки = { - [настройки["🀄/📦"]]: { - [настройки["🀄/📁"]]: null, - }, - }; - - мир.текстуры = { - [настройки["🀄/📦"]]: { }, - }; - var м = мир.модули.модульПоУказателю(настройки["🀄/📦"]); - var файлы = Object.keys(м.структура).sort(); - var колво = 42; - for (var номер = 0; номер < колво; ++номер) - { - var файл = файлы[номер]; - мир.текстуры[настройки["🀄/📦"]][файл] = null; - } -}; - - -// // // // - - -ПроверитьНеобходимостьЗагрузкиРесурсов = мир => -{ - var настройки = мир.настройкиМаджонга; - if ( - мир.полигональныеСетки && - настройки["🀄/📦"] in мир.полигональныеСетки && - настройки["🀄/📁"] in мир.полигональныеСетки[настройки["🀄/📦"]] && - мир.текстуры && - настройки["🀄/📦"] in мир.текстуры - ) { - мир.уведомить("ресурсы не нужно загружать"); - } - else - { - мир.уведомить("ресурсы нужно загружать"); - } -}; - - -// // // // - - -ЗагрузитьМодулиРесурсов = мир => -{ - var указатели = мир.списокМодулейРесурсовДляЗагрузки; - var сообщение = "Загрузка модулей ресурсов ⚬ 加载资源模块 ⚬ Loading resource modules"; - console.debug(сообщение, указатели); - мир.модули.использовали.подписатьРаз(function() { - мир.уведомить("загрузили модули ресурсов"); - }); - мир.модули.использовать(указатели); -}; - - -// // // // - - -ПроверитьНеобходимостьЗагрузкиМодулейРесурсов = мир => -{ - if (мир.списокМодулейРесурсовДляЗагрузки.length) - { - мир.уведомить("модули ресурсов нужно загружать"); - } - else - { - мир.уведомить("модули ресурсов не нужно загружать"); - } -} - - -// // // // - - -ПодготовитьПредставлениеСпискаТем = мир => -{ - var список = мир.списокТем; - - var названия = []; - for (var н in список) - { - var название = список[н][0]; - названия.push(название); - } - - мир.списокТемМаджонга = названия; -}; - - -// // // // - - -ПодготовитьСписокТем = мир => -{ - var темы = мир.реестрМаджонга["🀄"]; - - var список = []; - var указатели = Object.keys(темы).sort(); - for (var н in указатели) - { - var указатель = указатели[н]; - var м = мир.модули.модульПоУказателю(указатель); - список.push([м.имя, указатель]); - } - - мир.списокТем = список; -}; - - -// // // // - - -ПодготовитьСписокМодулейРесурсовДляЗагрузки = мир => -{ - var проверить = [ - мир.настройкиМаджонга["🀄/📦"], - мир.настройкиМаджонга["📍/📦"], - ]; - var загрузить = []; - for (var н in проверить) - { - var указатель = проверить[н]; - var м = мир.модули.модульПоУказателю(указатель); - - // Модуль не загружен. - if (!м.содержимое) - { - загрузить.push(указатель); - } - } - мир.списокМодулейРесурсовДляЗагрузки = загрузить; -}; - - -// // // // - - -ПодготовитьПредставлениеСпискаРаскладок = мир => -{ - var список = мир.списокРаскладок; - - var названия = []; - for (var н in список) - { - var файл = список[н][0]; - var название = файл - .substring(1) - .replace(".layout", ""); - названия.push(название); - } - - мир.списокРаскладокМаджонга = названия; -}; - - -// // // // - - -ПодготовитьСписокРаскладок = мир => -{ - var раскладки = мир.реестрМаджонга["📍"]; - - var список = []; - var указатели = Object.keys(раскладки).sort(); - for (var н in указатели) - { - var указатель = указатели[н]; - var файлы = раскладки[указатель]["📁"]; - for (var номер in файлы) - { - var файл = файлы[номер]; - список.push([файл, указатель]); - } - } - - мир.списокРаскладок = список; -}; - - -// // // // - - -ЗадатьНастройкиМаджонгаПоУмолчанию = мир => -{ - var файлыТемы = мир.реестрМаджонга["🀄"][ТЕМА_ПО_УМОЛЧАНИЮ]["📁"]; - var файлыРаскладок = мир.реестрМаджонга["📍"][РАСК_ПО_УМОЛЧАНИЮ]["📁"]; - - мир.настройкиМаджонга = { - "🀄/📦": ТЕМА_ПО_УМОЛЧАНИЮ, - "🀄/📁": файлыТемы[42], - "📍/📦": РАСК_ПО_УМОЛЧАНИЮ, - "📍/📁": файлыРаскладок[0], - } - - мир.номерВыбраннойРаскладкиМаджонга = 0; - мир.номерВыбраннойТемыМаджонга = 0; - - - мир.уведомить("изменили настройки маджонга"); -}; - - -// // // // - - -СоздатьПримерСцены = мир => -{ - мир.сцена.background = new THREE.Color(0xFFFFFF); - мир.свет = new THREE.DirectionalLight(0xFFFFFF, 1); - мир.свет.position.set(-0.5, 1, 0.5).normalize(); - мир.сцена.add(мир.свет); -}; - - -// // // // - - -ПлавноУбратьСтраницуЗагрузкиИСкрытьКрутилку = мир => -{ - плавноСкрытьИУдалить("экран-загрузки", { "задержка": 0.4 }); - плавноСкрыть("крутилка", { "задержка": 0.4 }); -}; \ No newline at end of file +// Не используется. \ No newline at end of file diff --git a/🏁.череда b/🏁.череда index 0565e0d..390bb0a 100644 --- a/🏁.череда +++ b/🏁.череда @@ -1,96 +1 @@ -надо окончить загрузку приложения - плавно убрать страницу загрузки и скрыть крутилку - создать пример сцены - подготовить список раскладок - подготовить представление списка раскладок - задать список раскладок маджонга - подготовить список тем - подготовить представление списка тем - задать список тем маджонга - отобразить окно управления - задать настройки маджонга по умолчанию -изменили настройки маджонга -# засечь время А - отобразить выбор раскладки маджонга - отобразить выбор темы маджонга - подготовить список модулей ресурсов для загрузки -# засечь время А - проверить необходимость загрузки модулей ресурсов -модули ресурсов не нужно загружать - проверить необходимость загрузки ресурсов -модули ресурсов нужно загружать - загрузить модули ресурсов -загрузили модули ресурсов - проверить необходимость загрузки ресурсов -ресурсы не нужно загружать - создать фишки -ресурсы нужно загружать - подготовиться к загрузке ресурсов - загрузить полигональные сетки -загрузили полигональные сетки - загрузить текстуры -загрузили текстуры - удалить фишки сцены - создать материалы фишек - создать фишки - -надо создать фишки -# засечь время А - перемешать позиции фишек - подготовиться к созданию фишек - создать фишки в сцене - создать индексы фишек маджонга - подготовить фишки к выбору -# засечь время А - собрать доступные для выбора номера фишек маджонга - подсчитать количество ходов в маджонге - задать количество фишек для отображения - отобразить количество фишек маджонга -# засечь время А -# вывести времена - -изменили номер выбранной раскладки маджонга - использовать выбранную раскладку -изменили номер выбранной темы маджонга - использовать выбранную тему - -нажатие в рисователе - выбрать узел сцены -выбрали узел сцены - задать фишку для выбора - выбрать фишку маджонга -изменили выбранные фишки маджонга - задать материалы фишкам сцены - выделить выбранные фишки в сцене -убрали фишки маджонга - скрыть убранные фишки в сцене -победа в маджонге - вывести победу - отобразить победу -поражение в маджонге - вывести поражение - отобразить поражение - -отрисовали кадр - обновить счётчик кадров - -кнопка раскладки отобразить - запретить выбор фишек -кнопка раскладки скрыть - разрешить выбор фишек -кнопка темы отобразить - запретить выбор фишек -кнопка темы скрыть - разрешить выбор фишек -кнопка увеличения масштаба - увеличить масштаб -кнопка уменьшения масштаба - уменьшить масштаб - -изменили масштаб - отобразить текущее значение масштаба - -изменили количество ходов в маджонге - отобразить количество ходов в маджонге - задать количество фишек для отображения - отобразить количество фишек маджонга \ No newline at end of file +// Не используется. \ No newline at end of file