Изменения от Главреда ГитЖС | Changes of GitJS Glavred
This commit is contained in:
3
0000
3
0000
@@ -2,6 +2,5 @@
|
|||||||
0.1.0
|
0.1.0
|
||||||
https://git.opengamestudio.org/MAOH/OTMA
|
https://git.opengamestudio.org/MAOH/OTMA
|
||||||
|
|
||||||
x /🎬.js
|
x /⨐.js
|
||||||
/🎬.череда
|
|
||||||
x /📖.js
|
x /📖.js
|
||||||
10
⨐.js
Normal file
10
⨐.js
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
засечьВремя = (мир, маркер) =>
|
||||||
|
{
|
||||||
|
if (!мир.времена) {
|
||||||
|
мир.времена = [];
|
||||||
|
}
|
||||||
|
мир.времена.push({
|
||||||
|
"время": new Date(),
|
||||||
|
"маркер": маркер,
|
||||||
|
});
|
||||||
|
};
|
||||||
153
🎬.js
153
🎬.js
@@ -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;
|
|
||||||
};
|
|
||||||
11
🎬.череда
11
🎬.череда
@@ -1,11 +0,0 @@
|
|||||||
ручной пуск
|
|
||||||
подготовить сцену маджонга
|
|
||||||
|
|
||||||
надо создать фишки в сцене
|
|
||||||
убрать старые фишки сцены
|
|
||||||
создать новые фишки сцены
|
|
||||||
посчитать размер поля фишек
|
|
||||||
центрировать фишки сцены
|
|
||||||
расположить камеру сцены
|
|
||||||
задать материалы фишкам сцены
|
|
||||||
# создать отладочную сферу в центре корня
|
|
||||||
57
📖.js
57
📖.js
@@ -1,35 +1,52 @@
|
|||||||
СкрытьУбранныеФишкиВСцене = мир =>
|
const ДЛИТЕЛЬНОСТЬ_ОТОБРАЖЕНИЯ = 3000;
|
||||||
{
|
|
||||||
for (var номер in мир.убранныеФишкиМаджонга)
|
|
||||||
{
|
|
||||||
var н = мир.убранныеФишкиМаджонга[номер];
|
|
||||||
// Перемещаем фишку на другой слой для исключения из отрисовки и выбора.
|
|
||||||
var ф = мир.фишкиСцены[н];
|
|
||||||
ф.layers.set(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// // // //
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
ВыделитьВыбранныеФишкиВСцене = мир =>
|
ВывестиВремена = мир =>
|
||||||
{
|
{
|
||||||
for (var номер in мир.выбранныеФишкиМаджонга)
|
var сообщения = [];
|
||||||
|
for (var н in мир.времена)
|
||||||
{
|
{
|
||||||
var н = мир.выбранныеФишкиМаджонга[номер];
|
var э = мир.времена[н];
|
||||||
var ф = мир.фишкиСцены[н];
|
if (н >= 1)
|
||||||
var г = мир.фишкиМаджонга[н]["🚩"];
|
{
|
||||||
var м = мир.выбранныеМатериалыФишекСцены[г];
|
var разница = э.время - мир.времена[н - 1].время;
|
||||||
ф.material = м;
|
var сообщение = `${э.маркер}`;
|
||||||
|
if (разница > 0)
|
||||||
|
{
|
||||||
|
сообщение = `${э.маркер} ${разница}`;
|
||||||
|
}
|
||||||
|
console.debug(сообщение);
|
||||||
|
сообщения.push(сообщение);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
мир.времена = [];
|
||||||
|
UIkit.notification(сообщения.join(", "), {timeout: ДЛИТЕЛЬНОСТЬ_ОТОБРАЖЕНИЯ});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// // // //
|
// // // //
|
||||||
|
|
||||||
|
ЗасечьВремяД = мир =>
|
||||||
СоздатьФишкиВСцене = мир =>
|
|
||||||
{
|
{
|
||||||
мир.уведомить("надо создать фишки в сцене");
|
засечьВремя(мир, "Д");
|
||||||
|
};
|
||||||
|
ЗасечьВремяГ = мир =>
|
||||||
|
{
|
||||||
|
засечьВремя(мир, "Г");
|
||||||
|
};
|
||||||
|
ЗасечьВремяВ = мир =>
|
||||||
|
{
|
||||||
|
засечьВремя(мир, "В");
|
||||||
|
};
|
||||||
|
ЗасечьВремяБ = мир =>
|
||||||
|
{
|
||||||
|
засечьВремя(мир, "Б");
|
||||||
|
};
|
||||||
|
ЗасечьВремяА = мир =>
|
||||||
|
{
|
||||||
|
засечьВремя(мир, "А");
|
||||||
};
|
};
|
||||||
Reference in New Issue
Block a user