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

This commit is contained in:
Главред | Glavred
2020-09-10 14:52:28 +03:00
parent 56ec198c3b
commit dfb00e8cce
3 changed files with 161 additions and 13 deletions

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

View File

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

View File

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