浏览代码

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

M-0.1.0
Главред | Glavred 4 年前
父节点
当前提交
dfb00e8cce
共有 3 个文件被更改,包括 161 次插入13 次删除
  1. +149
    -6
      сцена|scene.js
  2. +12
    -4
      сцена|scene.череда
  3. +0
    -3
      тема|theme.js

+ 149
- 6
сцена|scene.js 查看文件

@@ -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.череда 查看文件

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

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

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

+ 0
- 3
тема|theme.js 查看文件

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

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

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

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


正在加载...
取消
保存