Изменения от Главреда ГитЖС | Changes of GitJS Glavred
This commit is contained in:
3
0000
3
0000
@@ -1,7 +1,8 @@
|
|||||||
Сцена Маджонга
|
Сцена Маджонга
|
||||||
0.5.1
|
1.0.0
|
||||||
https://git.opengamestudio.org/MAOH/CEHMA
|
https://git.opengamestudio.org/MAOH/CEHMA
|
||||||
|
|
||||||
x /🎬.js
|
x /🎬.js
|
||||||
/🎬.череда
|
/🎬.череда
|
||||||
|
/🐛.js
|
||||||
x /📖.js
|
x /📖.js
|
||||||
89
🎬.js
89
🎬.js
@@ -1,15 +1,7 @@
|
|||||||
|
const ОТСТУП_МЕЖДУ_ФИШКАМИ = 0.02;
|
||||||
const КОЭФФИЦИЕНТ_ВЫСОТЫ = 1.5;
|
const КОЭФФИЦИЕНТ_ВЫСОТЫ = 1.5;
|
||||||
|
|
||||||
|
|
||||||
СоздатьОтладочнуюСферуВЦентреКорня = мир =>
|
|
||||||
{
|
|
||||||
var форма = new THREE.SphereBufferGeometry(0.5, 32, 32);
|
|
||||||
var сфера = new THREE.Mesh(форма);
|
|
||||||
сфера.material = new THREE.MeshLambertMaterial({ color: 0xAA00AA });
|
|
||||||
мир.кореньСценыМаджонга.add(сфера);
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
// // // //
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
@@ -28,13 +20,17 @@ const КОЭФФИЦИЕНТ_ВЫСОТЫ = 1.5;
|
|||||||
|
|
||||||
ЦентрироватьФишкиСцены = мир =>
|
ЦентрироватьФишкиСцены = мир =>
|
||||||
{
|
{
|
||||||
|
// Возвращаем в центр.
|
||||||
|
мир.сценаМаджонга.position.x = 0;
|
||||||
|
мир.сценаМаджонга.position.z = 0;
|
||||||
|
|
||||||
var р = мир.размерПоляФишек;
|
var р = мир.размерПоляФишек;
|
||||||
// Убираем пустоту слева.
|
// Убираем пустоту слева.
|
||||||
мир.кореньСценыМаджонга.position.x -= р.мин.x;
|
мир.сценаМаджонга.position.x -= р.мин.x;
|
||||||
мир.кореньСценыМаджонга.position.z -= р.мин.z;
|
мир.сценаМаджонга.position.z -= р.мин.z;
|
||||||
// Центрируем остаток.
|
// Центрируем остаток.
|
||||||
мир.кореньСценыМаджонга.position.x -= (р.макс.x - р.мин.x) / 2;
|
мир.сценаМаджонга.position.x -= (р.макс.x - р.мин.x) / 2;
|
||||||
мир.кореньСценыМаджонга.position.z -= (р.макс.z - р.мин.z) / 2;
|
мир.сценаМаджонга.position.z -= (р.макс.z - р.мин.z) / 2;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -51,7 +47,7 @@ const КОЭФФИЦИЕНТ_ВЫСОТЫ = 1.5;
|
|||||||
"x": 0,
|
"x": 0,
|
||||||
"z": 0,
|
"z": 0,
|
||||||
};
|
};
|
||||||
for (var номер in мир.фишкиСцены)
|
for (var номер in мир.фишкиМаджонга)
|
||||||
{
|
{
|
||||||
const ф = мир.фишкиСцены[номер];
|
const ф = мир.фишкиСцены[номер];
|
||||||
if (ф.position.x < мин.x)
|
if (ф.position.x < мин.x)
|
||||||
@@ -84,7 +80,7 @@ const КОЭФФИЦИЕНТ_ВЫСОТЫ = 1.5;
|
|||||||
|
|
||||||
ЗадатьМатериалыФишкамСцены = мир =>
|
ЗадатьМатериалыФишкамСцены = мир =>
|
||||||
{
|
{
|
||||||
for (var н in мир.фишкиСцены)
|
for (var н in мир.фишкиМаджонга)
|
||||||
{
|
{
|
||||||
var ф = мир.фишкиСцены[н];
|
var ф = мир.фишкиСцены[н];
|
||||||
var г = мир.фишкиМаджонга[н]["🚩"];
|
var г = мир.фишкиМаджонга[н]["🚩"];
|
||||||
@@ -94,25 +90,11 @@ const КОЭФФИЦИЕНТ_ВЫСОТЫ = 1.5;
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// // // //
|
|
||||||
|
|
||||||
|
|
||||||
УбратьСтарыеФишкиСцены = мир =>
|
|
||||||
{
|
|
||||||
if (мир.сценаМаджонга.children.length)
|
|
||||||
{
|
|
||||||
мир.сценаМаджонга.remove(мир.кореньСценыМаджонга);
|
|
||||||
}
|
|
||||||
мир.кореньСценыМаджонга = new THREE.Group();
|
|
||||||
мир.сценаМаджонга.add(мир.кореньСценыМаджонга);
|
|
||||||
мир.фишкиСцены = [];
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
// // // //
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
СоздатьНовыеФишкиСцены = мир =>
|
ПерезадатьФишкиСцены = мир =>
|
||||||
{
|
{
|
||||||
var фишка = мир.модельФишкиСцены;
|
var фишка = мир.модельФишкиСцены;
|
||||||
var границы = фишка.geometry.boundingBox;
|
var границы = фишка.geometry.boundingBox;
|
||||||
@@ -122,16 +104,14 @@ const КОЭФФИЦИЕНТ_ВЫСОТЫ = 1.5;
|
|||||||
(границы.max.y - границы.min.y),
|
(границы.max.y - границы.min.y),
|
||||||
];
|
];
|
||||||
var отступ = мир.отступМеждуФишкамиСцены;
|
var отступ = мир.отступМеждуФишкамиСцены;
|
||||||
|
|
||||||
for (var номер in мир.фишкиМаджонга)
|
for (var номер in мир.фишкиМаджонга)
|
||||||
{
|
{
|
||||||
// Узел сцены.
|
// Узел сцены.
|
||||||
var фм = мир.фишкиМаджонга[номер];
|
var ф = мир.фишкиСцены[номер];
|
||||||
var ф = фишка.clone();
|
ф.layers.set(0);
|
||||||
ф.userData = номер;
|
ф.userData = номер;
|
||||||
мир.фишкиСцены.push(ф);
|
|
||||||
мир.кореньСценыМаджонга.add(ф);
|
|
||||||
// Расположение.
|
// Расположение.
|
||||||
|
var фм = мир.фишкиМаджонга[номер];
|
||||||
var п = фм["📍"];
|
var п = фм["📍"];
|
||||||
var слой = п[0];
|
var слой = п[0];
|
||||||
var ряд = п[1];
|
var ряд = п[1];
|
||||||
@@ -146,8 +126,45 @@ const КОЭФФИЦИЕНТ_ВЫСОТЫ = 1.5;
|
|||||||
// // // //
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
СкрытьФишкиСцены = мир =>
|
||||||
|
{
|
||||||
|
var фишки = мир.фишкиСцены;
|
||||||
|
for (var н in фишки)
|
||||||
|
{
|
||||||
|
var ф = фишки[н];
|
||||||
|
ф.layers.set(1);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
ДосоздатьФишкиСцены = мир =>
|
||||||
|
{
|
||||||
|
// Если фишек в сцене уже достаточно, то ничего не делаем.
|
||||||
|
if (мир.фишкиСцены.length >= мир.фишкиМаджонга.length)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var фишка = мир.модельФишкиСцены;
|
||||||
|
var колво = мир.фишкиМаджонга.length - мир.фишкиСцены.length;
|
||||||
|
for (var н = 0; н < колво; ++н)
|
||||||
|
{
|
||||||
|
var ф = фишка.clone();
|
||||||
|
мир.фишкиСцены.push(ф);
|
||||||
|
мир.кореньСценыМаджонга.add(ф);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
ПодготовитьСценуМаджонга = мир =>
|
ПодготовитьСценуМаджонга = мир =>
|
||||||
{
|
{
|
||||||
|
мир.отступМеждуФишкамиСцены = ОТСТУП_МЕЖДУ_ФИШКАМИ;
|
||||||
мир.сценаМаджонга = new THREE.Group();
|
мир.сценаМаджонга = new THREE.Group();
|
||||||
мир.отступМеждуФишкамиСцены = 0.02;
|
мир.фишкиСцены = [];
|
||||||
};
|
};
|
||||||
5
🎬.череда
5
🎬.череда
@@ -3,9 +3,10 @@
|
|||||||
|
|
||||||
надо создать фишки в сцене
|
надо создать фишки в сцене
|
||||||
засечь время Б
|
засечь время Б
|
||||||
убрать старые фишки сцены
|
досоздать фишки сцены
|
||||||
|
скрыть фишки сцены
|
||||||
засечь время Б
|
засечь время Б
|
||||||
создать новые фишки сцены
|
перезадать фишки сцены
|
||||||
засечь время Б
|
засечь время Б
|
||||||
посчитать размер поля фишек
|
посчитать размер поля фишек
|
||||||
засечь время Б
|
засечь время Б
|
||||||
|
|||||||
7
🐛.js
Normal file
7
🐛.js
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
СоздатьОтладочнуюСферуВЦентреКорня = мир =>
|
||||||
|
{
|
||||||
|
var форма = new THREE.SphereBufferGeometry(0.5, 32, 32);
|
||||||
|
var сфера = new THREE.Mesh(форма);
|
||||||
|
сфера.material = new THREE.MeshLambertMaterial({ color: 0xAA00AA });
|
||||||
|
мир.кореньСценыМаджонга.add(сфера);
|
||||||
|
};
|
||||||
15
📖.js
15
📖.js
@@ -1,3 +1,18 @@
|
|||||||
|
УдалитьФишкиСцены = мир =>
|
||||||
|
{
|
||||||
|
if (мир.сценаМаджонга.children.length)
|
||||||
|
{
|
||||||
|
мир.сценаМаджонга.remove(мир.кореньСценыМаджонга);
|
||||||
|
}
|
||||||
|
мир.кореньСценыМаджонга = new THREE.Group();
|
||||||
|
мир.сценаМаджонга.add(мир.кореньСценыМаджонга);
|
||||||
|
мир.фишкиСцены = [];
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
СкрытьУбранныеФишкиВСцене = мир =>
|
СкрытьУбранныеФишкиВСцене = мир =>
|
||||||
{
|
{
|
||||||
for (var номер in мир.убранныеФишкиМаджонга)
|
for (var номер in мир.убранныеФишкиМаджонга)
|
||||||
|
|||||||
Reference in New Issue
Block a user