Изменения от Главреда ГитЖС | 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;
@@ -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";