Изменения от Главреда ГитЖС | Changes of GitJS Glavred
This commit is contained in:
7
0000
7
0000
@@ -1,16 +1,15 @@
|
|||||||
МАОН
|
МАОН
|
||||||
0.2.5
|
0.2.6
|
||||||
https://git.opengamestudio.org/KH/MAOH
|
https://git.opengamestudio.org/KH/MAOH
|
||||||
|
|
||||||
x /⨐.js
|
|
||||||
x /🎬.js
|
x /🎬.js
|
||||||
/🎬.череда
|
/🎬.череда
|
||||||
/🏁.js
|
/🏁.js
|
||||||
/🏁.череда
|
/🏁.череда
|
||||||
/📦
|
/📦
|
||||||
|
x /📦.js
|
||||||
|
/📦.череда
|
||||||
x /🔄.js
|
x /🔄.js
|
||||||
/🔄.череда
|
/🔄.череда
|
||||||
/🙈.css
|
/🙈.css
|
||||||
/🙈.html
|
/🙈.html
|
||||||
x /🙈.js
|
|
||||||
x /🧱.js
|
|
||||||
33
⨐.js
33
⨐.js
@@ -1,33 +0,0 @@
|
|||||||
function сделатьПараллельно(мир, список, функция, откликУспех, откликПровал = null)
|
|
||||||
{
|
|
||||||
for (const номер in список)
|
|
||||||
{
|
|
||||||
функция(мир, список, номер, готово, провал);
|
|
||||||
}
|
|
||||||
|
|
||||||
var всего = 0;
|
|
||||||
|
|
||||||
function готово()
|
|
||||||
{
|
|
||||||
всего += 1;
|
|
||||||
if (всего == список.length)
|
|
||||||
{
|
|
||||||
откликУспех();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var провалУжеСообщили = false;
|
|
||||||
|
|
||||||
function провал()
|
|
||||||
{
|
|
||||||
if (провалУжеСообщили)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
провалУжеСообщили = true;
|
|
||||||
if (откликПровал)
|
|
||||||
{
|
|
||||||
откликПровал();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
46
🎬.js
46
🎬.js
@@ -1,40 +1,26 @@
|
|||||||
|
ЗадатьЗаголовок = мир =>
|
||||||
|
|
||||||
// // // //
|
|
||||||
|
|
||||||
|
|
||||||
ОкончитьЗагрузкуМаджонга = мир =>
|
|
||||||
{
|
{
|
||||||
мир.уведомить("надо окончить загрузку маджонга");
|
document.title = "🀄 МАОН";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// // // //
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
ЗагрузитьЧередуОкончания = мир =>
|
ОтобразитьСтраницуЗагрузки = мир =>
|
||||||
{
|
{
|
||||||
var м = мир.модули.модульПоУказателю(УКАЗАТЕЛЬ_ЭТОГО_МОДУЛЯ);
|
var м = мир.модули.модульПоУказателю(УКАЗАТЕЛЬ_ЭТОГО_МОДУЛЯ);
|
||||||
var содержимое = м.содержимое["/🏁.js"];
|
|
||||||
eval(содержимое);
|
var вид = document.createElement("style");
|
||||||
м.исполнитьЧереду(мир, "/🏁.череда");
|
document.head.appendChild(вид);
|
||||||
};
|
вид.innerHTML = м.содержимое["/🙈.css"];
|
||||||
|
|
||||||
|
var структура = м.содержимое["/🙈.html"]
|
||||||
// // // //
|
.replace(/\${версия}/g, м.версия);
|
||||||
|
// Вставляем содержимое в рамку, чтобы применяемые стили UIkit не
|
||||||
|
// дёргали надписи.
|
||||||
ПроверитьНаличиеОбновленийПриложения = мир =>
|
// https://stackoverflow.com/a/8322025
|
||||||
{
|
var рамка = "<iframe id='экран-загрузки' class='фон-экрана' frameBorder='0'></iframe>";
|
||||||
// Эта функция находится вне "/🔄.js", т.к. "/🔄.js" отключаем,
|
document.body.insertAdjacentHTML("afterbegin", рамка);
|
||||||
// отчего этой функции просто не будет в пространстве имён.
|
document.getElementById("экран-загрузки").src = "data:text/html;charset=utf-8," + структура;
|
||||||
var событие = "надо обновить приложение при наличии обновлений";
|
|
||||||
if (событие in мир.события)
|
|
||||||
{
|
|
||||||
мир.уведомить(событие);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
мир.уведомить("обновления приложения отсутствуют");
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
8
🎬.череда
8
🎬.череда
@@ -1,9 +1,3 @@
|
|||||||
пуск
|
пуск
|
||||||
задать заголовок
|
задать заголовок
|
||||||
отобразить страницу загрузки маджонга
|
отобразить страницу загрузки
|
||||||
проверить наличие обновлений приложения
|
|
||||||
обновления приложения отсутствуют
|
|
||||||
загрузить библиотеки приложения
|
|
||||||
загрузили библиотеки приложения
|
|
||||||
загрузить череду окончания
|
|
||||||
окончить загрузку маджонга
|
|
||||||
199
🏁.js
199
🏁.js
@@ -1,9 +1,206 @@
|
|||||||
|
|
||||||
|
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";
|
||||||
|
|
||||||
|
|
||||||
// // // //
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
ПлавноУбратьСтраницуЗагрузкиМаджонгаИСкрытьКрутилку = мир =>
|
СкрытьУбранныеФишки = мир =>
|
||||||
|
{
|
||||||
|
for (var номер in мир.убранныеФишкиМаджонга)
|
||||||
|
{
|
||||||
|
var н = мир.убранныеФишкиМаджонга[номер];
|
||||||
|
// Перемещаем фишку на другой слой для исключения её из отрисовки и выбора.
|
||||||
|
var ф = мир.фишки[н];
|
||||||
|
ф.layers.set(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
ЗадатьФишкуДляВыбора = мир =>
|
||||||
|
{
|
||||||
|
var номер = мир.выбранныйУзел.userData;
|
||||||
|
мир.фишкаМаджонгаДляВыбора = номер;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
ПодготовитьФишкиКВыбору = мир =>
|
||||||
|
{
|
||||||
|
мир.выборныеУзлы = мир.фишки;
|
||||||
|
мир.задержкаОтображенияВыбранныхФишек = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
ВыделитьВыбранныеФишки = мир =>
|
||||||
|
{
|
||||||
|
for (var номер in мир.выбранныеФишкиМаджонга)
|
||||||
|
{
|
||||||
|
var н = мир.выбранныеФишкиМаджонга[номер];
|
||||||
|
var ф = мир.фишки[н];
|
||||||
|
var г = мир.фишкиМаджонга[н]["🚩"];
|
||||||
|
var м = мир.выбранныеМатериалы[г];
|
||||||
|
ф.material = м;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
ЗадатьМатериалыФишкам = мир =>
|
||||||
|
{
|
||||||
|
for (var н in мир.фишки)
|
||||||
|
{
|
||||||
|
var ф = мир.фишки[н];
|
||||||
|
var г = мир.фишкиМаджонга[н]["🚩"];
|
||||||
|
var м = мир.материалы[г];
|
||||||
|
ф.material = м;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
СоздатьФишки = мир =>
|
||||||
|
{
|
||||||
|
var фишка = мир.полигональныеСетки[РЕСУРСЫ][ФИШКА];
|
||||||
|
var границы = фишка.geometry.boundingBox;
|
||||||
|
var размеры = [
|
||||||
|
(границы.max.x - границы.min.x) / 2,
|
||||||
|
(границы.max.z - границы.min.z) / 2,
|
||||||
|
//границы.max.y - границы.min.y,
|
||||||
|
];
|
||||||
|
var отступ = 0.02;
|
||||||
|
|
||||||
|
мир.фишки = [];
|
||||||
|
for (var номер in мир.фишкиМаджонга)
|
||||||
|
{
|
||||||
|
// Узел сцены.
|
||||||
|
var фм = мир.фишкиМаджонга[номер];
|
||||||
|
var ф = фишка.clone();
|
||||||
|
ф.userData = номер;
|
||||||
|
мир.фишки.push(ф);
|
||||||
|
мир.сцена.add(ф);
|
||||||
|
// Расположение.
|
||||||
|
var позиция = фм["📍"];
|
||||||
|
/*
|
||||||
|
var слой = позиция[0];
|
||||||
|
var ряд = позиция[1];
|
||||||
|
var столбец = позиция[2];
|
||||||
|
*/
|
||||||
|
var слой = 0;
|
||||||
|
var ряд = позиция[0];
|
||||||
|
var столбец = позиция[1];
|
||||||
|
|
||||||
|
ф.position.x = столбец * (размеры[0] + отступ);
|
||||||
|
ф.position.z = ряд * (размеры[1] + отступ);
|
||||||
|
ф.position.y = слой;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
ЗадатьФишки = мир =>
|
||||||
|
{
|
||||||
|
мир.фишкиМаджонга = [
|
||||||
|
{
|
||||||
|
"📍": [0, 0],
|
||||||
|
"🚩": 0,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"📍": [2, 0],
|
||||||
|
"🚩": 0,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"📍": [0, 2],
|
||||||
|
"🚩": 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;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
ПлавноУбратьСтраницуЗагрузкиИСкрытьКрутилку = мир =>
|
||||||
{
|
{
|
||||||
плавноСкрытьИУдалить("экран-загрузки", { "задержка": 0.4 });
|
плавноСкрытьИУдалить("экран-загрузки", { "задержка": 0.4 });
|
||||||
плавноСкрыть("крутилка", { "задержка": 0.4 });
|
плавноСкрыть("крутилка", { "задержка": 0.4 });
|
||||||
|
|||||||
27
🏁.череда
27
🏁.череда
@@ -1,2 +1,25 @@
|
|||||||
надо окончить загрузку маджонга
|
надо окончить загрузку приложения
|
||||||
плавно убрать страницу загрузки маджонга и скрыть крутилку
|
плавно убрать страницу загрузки и скрыть крутилку
|
||||||
|
подготовиться к загрузке ресурсов
|
||||||
|
загрузить полигональные сетки
|
||||||
|
загрузили полигональные сетки
|
||||||
|
загрузить текстуры
|
||||||
|
загрузили текстуры
|
||||||
|
создать материалы фишек
|
||||||
|
создать пример сцены
|
||||||
|
подготовить механику маджонга
|
||||||
|
задать фишки
|
||||||
|
создать фишки
|
||||||
|
задать материалы фишкам
|
||||||
|
подготовить фишки к выбору
|
||||||
|
|
||||||
|
нажатие в рисователе
|
||||||
|
выбрать узел сцены
|
||||||
|
выбрали узел сцены
|
||||||
|
задать фишку для выбора
|
||||||
|
выбрать фишку маджонга
|
||||||
|
изменили выбранные фишки маджонга
|
||||||
|
задать материалы фишкам
|
||||||
|
выделить выбранные фишки
|
||||||
|
убрали фишки маджонга
|
||||||
|
скрыть убранные фишки
|
||||||
6
📦
6
📦
@@ -4,7 +4,9 @@
|
|||||||
|
|
||||||
https://bitbucket.org/gitjs/jquery/raw/3.5.1/0000
|
https://bitbucket.org/gitjs/jquery/raw/3.5.1/0000
|
||||||
https://bitbucket.org/gitjs/uikit/raw/3.2.0/0000
|
https://bitbucket.org/gitjs/uikit/raw/3.2.0/0000
|
||||||
https://git.opengamestudio.org/mahjong/base64/raw/branch/master/0000
|
|
||||||
https://git.opengamestudio.org/mahjong/mahjong-raskladka-layout/raw/branch/master/0000
|
https://git.opengamestudio.org/mahjong/mahjong-raskladka-layout/raw/branch/master/0000
|
||||||
https://git.opengamestudio.org/mahjong/povtorniy-repeating-ui/raw/branch/master/0000
|
https://git.opengamestudio.org/mahjong/povtorniy-repeating-ui/raw/branch/master/0000
|
||||||
https://git.opengamestudio.org/KH/PuCOBATEJlb-renderer/raw/branch/master/0000
|
https://git.opengamestudio.org/PuCOBATEJlb/PuCOBATEJlb/raw/branch/master/0000
|
||||||
|
https://git.opengamestudio.org/PuCOBATEJlb/PECYPCbl/raw/branch/master/0000
|
||||||
|
https://git.opengamestudio.org/MAOH/MAOH_TEMA_OTAK/raw/branch/master/0000
|
||||||
|
https://git.opengamestudio.org/MAOH/MEXMA/raw/branch/master/0000
|
||||||
69
📦.js
Normal file
69
📦.js
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
ОкончитьЗагрузкуПриложения = мир =>
|
||||||
|
{
|
||||||
|
мир.уведомить("надо окончить загрузку приложения");
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
ЗагрузитьОкончание = мир =>
|
||||||
|
{
|
||||||
|
var м = мир.модули.модульПоУказателю(УКАЗАТЕЛЬ_ЭТОГО_МОДУЛЯ);
|
||||||
|
eval(м.содержимое["/🏁.js"]);
|
||||||
|
мир.разобрать(м.содержимое["/🏁.череда"]);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
ЗагрузитьБиблиотекиПриложения = мир =>
|
||||||
|
{
|
||||||
|
var указатели = [];
|
||||||
|
var м = мир.модули.модульПоУказателю(УКАЗАТЕЛЬ_ЭТОГО_МОДУЛЯ);
|
||||||
|
var содержимое = м.содержимое["/📦"];
|
||||||
|
var строки = содержимое.split(/\n/);
|
||||||
|
for (var номер in строки)
|
||||||
|
{
|
||||||
|
var строка = строки[номер];
|
||||||
|
if (!строка.startsWith("#") && строка.length)
|
||||||
|
{
|
||||||
|
указатели.push(строка);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (указатели.length)
|
||||||
|
{
|
||||||
|
var сообщение = "Загрузка библиотек ⚬ 加载库 ⚬ Loading libraries";
|
||||||
|
console.debug(сообщение, указатели);
|
||||||
|
мир.модули.использовали.подписатьРаз(function() {
|
||||||
|
мир.уведомить("ручной пуск");
|
||||||
|
мир.уведомить("загрузили библиотеки приложения");
|
||||||
|
});
|
||||||
|
мир.модули.использовать(указатели);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
мир.уведомить("загрузили библиотеки приложения");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
ПроверитьНаличиеОбновленийПриложения = мир =>
|
||||||
|
{
|
||||||
|
// Эта функция находится вне "/🔄.js", т.к. "/🔄.js" отключаем,
|
||||||
|
// отчего этой функции просто не будет в пространстве имён.
|
||||||
|
var событие = "надо обновить приложение при наличии обновлений";
|
||||||
|
if (событие in мир.события)
|
||||||
|
{
|
||||||
|
мир.уведомить(событие);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
мир.уведомить("обновления приложения отсутствуют");
|
||||||
|
}
|
||||||
|
};
|
||||||
7
📦.череда
Normal file
7
📦.череда
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
пуск
|
||||||
|
проверить наличие обновлений приложения
|
||||||
|
обновления приложения отсутствуют
|
||||||
|
загрузить библиотеки приложения
|
||||||
|
загрузили библиотеки приложения
|
||||||
|
загрузить окончание
|
||||||
|
окончить загрузку приложения
|
||||||
5
🔄.js
5
🔄.js
@@ -1,8 +1,3 @@
|
|||||||
|
|
||||||
|
|
||||||
// // // //
|
|
||||||
|
|
||||||
|
|
||||||
ПерезагрузитьПриложениеПослеОбновления = мир =>
|
ПерезагрузитьПриложениеПослеОбновления = мир =>
|
||||||
{
|
{
|
||||||
window.location.reload(false);
|
window.location.reload(false);
|
||||||
|
|||||||
31
🙈.js
31
🙈.js
@@ -1,31 +0,0 @@
|
|||||||
|
|
||||||
|
|
||||||
// // // //
|
|
||||||
|
|
||||||
|
|
||||||
ЗадатьЗаголовок = мир =>
|
|
||||||
{
|
|
||||||
document.title = "🀄 МАОН";
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
// // // //
|
|
||||||
|
|
||||||
|
|
||||||
ОтобразитьСтраницуЗагрузкиМаджонга = мир =>
|
|
||||||
{
|
|
||||||
var м = мир.модули.модульПоУказателю(УКАЗАТЕЛЬ_ЭТОГО_МОДУЛЯ);
|
|
||||||
|
|
||||||
var вид = document.createElement("style");
|
|
||||||
document.head.appendChild(вид);
|
|
||||||
вид.innerHTML = м.содержимое["/🙈.css"];
|
|
||||||
|
|
||||||
var структура = м.содержимое["/🙈.html"]
|
|
||||||
.replace(/\${версия}/g, м.версия);
|
|
||||||
// Вставляем содержимое в рамку, чтобы применяемые стили UIkit не
|
|
||||||
// дёргали надписи.
|
|
||||||
// https://stackoverflow.com/a/8322025
|
|
||||||
var рамка = "<iframe id='экран-загрузки' class='фон-экрана' frameBorder='0'></iframe>";
|
|
||||||
document.body.insertAdjacentHTML("afterbegin", рамка);
|
|
||||||
document.getElementById("экран-загрузки").src = "data:text/html;charset=utf-8," + структура;
|
|
||||||
};
|
|
||||||
24
🧱.js
24
🧱.js
@@ -1,24 +0,0 @@
|
|||||||
ЗагрузитьБиблиотекиПриложения = мир =>
|
|
||||||
{
|
|
||||||
var указатели = [];
|
|
||||||
var м = мир.модули.модульПоУказателю(УКАЗАТЕЛЬ_ЭТОГО_МОДУЛЯ);
|
|
||||||
var содержимое = м.содержимое["/📦"];
|
|
||||||
var строки = содержимое.split(/\n/);
|
|
||||||
for (var номер in строки)
|
|
||||||
{
|
|
||||||
var строка = строки[номер];
|
|
||||||
if (!строка.startsWith("#") && строка.length)
|
|
||||||
{
|
|
||||||
указатели.push(строка);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var сообщение = "Загрузка библиотек ⚬ 加载库 ⚬ Loading libraries";
|
|
||||||
console.debug(сообщение, указатели);
|
|
||||||
|
|
||||||
мир.модули.использовали.подписатьРаз(function() {
|
|
||||||
мир.уведомить("ручной пуск");
|
|
||||||
мир.уведомить("загрузили библиотеки приложения");
|
|
||||||
});
|
|
||||||
мир.модули.использовать(указатели);
|
|
||||||
};
|
|
||||||
Reference in New Issue
Block a user