Browse Source

Изменения от Главреда ГитЖС | Changes of GitJS Glavred

master
Главред | Glavred 3 years ago
parent
commit
6a7ac67040
5 changed files with 80 additions and 39 deletions
  1. +2
    -1
      0000
  2. +53
    -36
      🎬.js
  3. +3
    -2
      🎬.череда
  4. +7
    -0
      🐛.js
  5. +15
    -0
      📖.js

+ 2
- 1
0000 View File

@@ -1,7 +1,8 @@
Сцена Маджонга
0.5.1
1.0.0
https://git.opengamestudio.org/MAOH/CEHMA

x /🎬.js
/🎬.череда
/🐛.js
x /📖.js

+ 53
- 36
🎬.js View File

@@ -1,15 +1,7 @@
const ОТСТУП_МЕЖДУ_ФИШКАМИ = 0.02;
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 р = мир.размерПоляФишек;
// Убираем пустоту слева.
мир.кореньСценыМаджонга.position.x -= р.мин.x;
мир.кореньСценыМаджонга.position.z -= р.мин.z;
мир.сценаМаджонга.position.x -= р.мин.x;
мир.сценаМаджонга.position.z -= р.мин.z;
// Центрируем остаток.
мир.кореньСценыМаджонга.position.x -= (р.макс.x - р.мин.x) / 2;
мир.кореньСценыМаджонга.position.z -= (р.макс.z - р.мин.z) / 2;
мир.сценаМаджонга.position.x -= (р.макс.x - р.мин.x) / 2;
мир.сценаМаджонга.position.z -= (р.макс.z - р.мин.z) / 2;
};


@@ -51,7 +47,7 @@ const КОЭФФИЦИЕНТ_ВЫСОТЫ = 1.5;
"x": 0,
"z": 0,
};
for (var номер in мир.фишкиСцены)
for (var номер in мир.фишкиМаджонга)
{
const ф = мир.фишкиСцены[номер];
if (ф.position.x < мин.x)
@@ -84,7 +80,7 @@ const КОЭФФИЦИЕНТ_ВЫСОТЫ = 1.5;

ЗадатьМатериалыФишкамСцены = мир =>
{
for (var н in мир.фишкиСцены)
for (var н in мир.фишкиМаджонга)
{
var ф = мир.фишкиСцены[н];
var г = мир.фишкиМаджонга[н]["🚩"];
@@ -94,25 +90,11 @@ const КОЭФФИЦИЕНТ_ВЫСОТЫ = 1.5;
};


// // // //


УбратьСтарыеФишкиСцены = мир =>
{
if (мир.сценаМаджонга.children.length)
{
мир.сценаМаджонга.remove(мир.кореньСценыМаджонга);
}
мир.кореньСценыМаджонга = new THREE.Group();
мир.сценаМаджонга.add(мир.кореньСценыМаджонга);
мир.фишкиСцены = [];
};


// // // //


СоздатьНовыеФишкиСцены = мир =>
ПерезадатьФишкиСцены = мир =>
{
var фишка = мир.модельФишкиСцены;
var границы = фишка.geometry.boundingBox;
@@ -122,16 +104,14 @@ const КОЭФФИЦИЕНТ_ВЫСОТЫ = 1.5;
(границы.max.y - границы.min.y),
];
var отступ = мир.отступМеждуФишкамиСцены;

for (var номер in мир.фишкиМаджонга)
{
// Узел сцены.
var фм = мир.фишкиМаджонга[номер];
var ф = фишка.clone();
var ф = мир.фишкиСцены[номер];
ф.layers.set(0);
ф.userData = номер;
мир.фишкиСцены.push(ф);
мир.кореньСценыМаджонга.add(ф);
// Расположение.
var фм = мир.фишкиМаджонга[номер];
var п = фм["📍"];
var слой = п[0];
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();
мир.отступМеждуФишкамиСцены = 0.02;
мир.фишкиСцены = [];
};

+ 3
- 2
🎬.череда View File

@@ -3,9 +3,10 @@

надо создать фишки в сцене
засечь время Б
убрать старые фишки сцены
досоздать фишки сцены
скрыть фишки сцены
засечь время Б
создать новые фишки сцены
перезадать фишки сцены
засечь время Б
посчитать размер поля фишек
засечь время Б


+ 7
- 0
🐛.js View 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
- 0
📖.js View File

@@ -1,3 +1,18 @@
УдалитьФишкиСцены = мир =>
{
if (мир.сценаМаджонга.children.length)
{
мир.сценаМаджонга.remove(мир.кореньСценыМаджонга);
}
мир.кореньСценыМаджонга = new THREE.Group();
мир.сценаМаджонга.add(мир.кореньСценыМаджонга);
мир.фишкиСцены = [];
};


// // // //


СкрытьУбранныеФишкиВСцене = мир =>
{
for (var номер in мир.убранныеФишкиМаджонга)


Loading…
Cancel
Save