Browse Source

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

M-0.1.0
Главред | Glavred 3 years ago
parent
commit
dfb00e8cce
3 changed files with 161 additions and 13 deletions
  1. +149
    -6
      сцена|scene.js
  2. +12
    -4
      сцена|scene.череда
  3. +0
    -3
      тема|theme.js

+ 149
- 6
сцена|scene.js View File

@@ -5,6 +5,135 @@ const ИМЯ_МОДУЛЯ_РЕСУРСОВ = "Ресурсы Маджонга |
// // // //


ВывестиКоординатыНажатия = мир =>
{
var п = мир.позицияНажатия;
console.debug("нажатие", п.x, п.y);
};


// // // //


ИсправитьОтслеживаниеНажатийНаIOS = мир =>
{
// https://stackoverflow.com/a/31459240/3404710
мир.отрисовщик.domElement.style.cursor = "pointer";
};


// // // //


ОтслеживатьНажатияПальцем = мир =>
{
window.addEventListener(
"touchstart",
function(событие) {
var позиция = new THREE.Vector2();
позиция.x = (событие.touches[0].clientX / window.innerWidth) * 2 - 1;
позиция.y = - (событие.touches[0].clientY / window.innerHeight) * 2 + 1;
мир.позицияНажатия = позиция;
мир.уведомить("нажали");
}
);

};


// // // //


ОтслеживатьНажатияМышью = мир =>
{
window.addEventListener(
"click",
function(событие) {
var позиция = new THREE.Vector2();
позиция.x = (событие.clientX / window.innerWidth) * 2 - 1;
позиция.y = - (событие.clientY / window.innerHeight) * 2 + 1;
мир.позицияНажатия = позиция;
мир.уведомить("нажали");
}
);
};


// // // //


ЗадатьМатериалыФишкамПоГруппам = мир =>
{
for (var номер in мир.группыФишек)
{
var группа = мир.группыФишек[номер];
var материал = мир.материалыФишек[группа];
фишка = мир.фишки[номер];
фишка.material = материал;
}
};


// // // //


СоздатьГруппыФишек = мир =>
{
мир.группыФишек = [];
const позиции = мир.раскладкаKMahjongg.позиции;
var группа = 0;
for (var номер in позиции)
{
мир.группыФишек.push(группа);
// Меняем группу каждую пару фишек.
if (номер %2 == 0)
{
++группа;
// Начинаем группы заново, как только они заканчиваются.
if (группа >= 42)
{
группа = 0;
}
}
}
};


// // // //


СоздатьУзлыФишек = мир =>
{
var границы = мир.фишка.geometry.boundingBox;
var размеры = [
(границы.max.x - границы.min.x) / 2,
(границы.max.z - границы.min.z) / 2,
границы.max.y - границы.min.y,
];
const позиции = мир.раскладкаKMahjongg.позиции;
мир.фишки = [];
for (var номер in позиции)
{
// Модель.
var фишка = мир.фишка.clone();
мир.фишки.push(фишка);
мир.корень.add(фишка);
// Расположение.
var позиция = позиции[номер];
var слой = позиция[0];
var ряд = позиция[1];
var столбец = позиция[2];
фишка.position.x = столбец * размеры[0];
фишка.position.z = ряд * размеры[1];
фишка.position.y = слой;
}
};


// // // //


ОтобразитьРаскладкуПоследовательноСоВсемиТекстурами = мир =>
{
var границы = мир.фишка.geometry.boundingBox;
@@ -30,12 +159,9 @@ const ИМЯ_МОДУЛЯ_РЕСУРСОВ = "Ресурсы Маджонга |
фишка.position.x = столбец * размеры[0];
фишка.position.z = ряд * размеры[1];
фишка.position.y = слой;
// Текстура.
var номерТекстуры = номер % 42;
// Потому что текстуры с индекса 1 начинаются.
номерТекстуры += 1;
var текстура = мир.текстурыТемФишек["отладочная|debug"][номерТекстуры];
var материал = new THREE.MeshLambertMaterial({map: текстура});
// Материал.
var номерМатериала = номер % 42;
var материал = мир.материалыФишек[номерМатериала];
фишка.material = материал;
}
};
@@ -44,6 +170,22 @@ const ИМЯ_МОДУЛЯ_РЕСУРСОВ = "Ресурсы Маджонга |
// // // //


СоздатьМатериалыФишекОтладочнойТемы = мир =>
{
мир.материалыФишек = [];
var тема = "отладочная|debug";
for (var номер = 1; номер <= 42; ++номер)
{
var текстура = мир.текстурыТемФишек[тема][номер];
var материал = new THREE.MeshLambertMaterial({map: текстура});
мир.материалыФишек.push(материал);
}
};


// // // //


ВывестиФактЗагрузкиТемыФишекМаджонга = мир =>
{
console.debug("ВывестиФактЗагрузкиТемыФишекМаджонга");
@@ -52,6 +194,7 @@ const ИМЯ_МОДУЛЯ_РЕСУРСОВ = "Ресурсы Маджонга |

// // // //


ЗадатьТемуФишекДляЗагрузки = мир =>
{
мир.темаФишек = "отладочная|debug";


+ 12
- 4
сцена|scene.череда View File

@@ -14,18 +14,26 @@
задать тему фишек для загрузки
загрузить тему фишек маджонга
загрузили тему фишек маджонга
вывести факт загрузки темы фишек маджонга
# вывести факт загрузки темы фишек маджонга
# загрузить текстуру фишки из модуля
#загрузили текстуру фишки из модуля
# подготовить фишку
# отобразить раскладку одной фишкой

отобразить раскладку последовательно со всеми текстурами
создать материалы фишек отладочной темы
# отобразить раскладку последовательно со всеми текстурами
создать узлы фишек
создать группы фишек
задать материалы фишкам по группам
центрировать сцену
отслеживать нажатия мышью
отслеживать нажатия пальцем
исправить отслеживание нажатий на IOS
запустить отрисовку
изменили размер окна браузера
изменить размер отрисовщика ThreeJS
нажали
вывести координаты нажатия

#поворот фишки
# отладка

+ 0
- 3
тема|theme.js View File

@@ -40,7 +40,6 @@

ЗагрузитьСледующуюТекстуруТемыФишекМаджонга = мир =>
{
console.debug("ЗагрузитьСледующуюТекстуруТемыФишекМаджонга");
const загрузка = мир.загрузкаТемыФишек;
var тема = мир.темыФишек[загрузка.имя];
var имяМодуляРесурсов = тема["🗿"];
@@ -71,8 +70,6 @@

ПодготовитьсяКЗагрузкеТемыФишекМаджонга = мир =>
{
console.debug("ПодготовитьсяКЗагрузкеТемыФишекМаджонга");

мир.загрузкаТемыФишек = {
"номер": 1,
"всего": 42,


Loading…
Cancel
Save