Изменения от Главреда ГитЖС | Changes of GitJS Glavred
This commit is contained in:
155
сцена|scene.js
155
сцена|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;
|
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";
|
||||||
|
|||||||
@@ -14,19 +14,27 @@
|
|||||||
задать тему фишек для загрузки
|
задать тему фишек для загрузки
|
||||||
загрузить тему фишек маджонга
|
загрузить тему фишек маджонга
|
||||||
загрузили тему фишек маджонга
|
загрузили тему фишек маджонга
|
||||||
вывести факт загрузки темы фишек маджонга
|
# вывести факт загрузки темы фишек маджонга
|
||||||
|
|
||||||
# загрузить текстуру фишки из модуля
|
# загрузить текстуру фишки из модуля
|
||||||
#загрузили текстуру фишки из модуля
|
#загрузили текстуру фишки из модуля
|
||||||
# подготовить фишку
|
# подготовить фишку
|
||||||
# отобразить раскладку одной фишкой
|
# отобразить раскладку одной фишкой
|
||||||
|
создать материалы фишек отладочной темы
|
||||||
отобразить раскладку последовательно со всеми текстурами
|
# отобразить раскладку последовательно со всеми текстурами
|
||||||
|
создать узлы фишек
|
||||||
|
создать группы фишек
|
||||||
|
задать материалы фишкам по группам
|
||||||
центрировать сцену
|
центрировать сцену
|
||||||
|
отслеживать нажатия мышью
|
||||||
|
отслеживать нажатия пальцем
|
||||||
|
исправить отслеживание нажатий на IOS
|
||||||
запустить отрисовку
|
запустить отрисовку
|
||||||
изменили размер окна браузера
|
изменили размер окна браузера
|
||||||
изменить размер отрисовщика ThreeJS
|
изменить размер отрисовщика ThreeJS
|
||||||
|
|
||||||
|
нажали
|
||||||
|
вывести координаты нажатия
|
||||||
|
|
||||||
#поворот фишки
|
#поворот фишки
|
||||||
# отладка
|
# отладка
|
||||||
# повернуть фишку
|
# повернуть фишку
|
||||||
@@ -40,7 +40,6 @@
|
|||||||
|
|
||||||
ЗагрузитьСледующуюТекстуруТемыФишекМаджонга = мир =>
|
ЗагрузитьСледующуюТекстуруТемыФишекМаджонга = мир =>
|
||||||
{
|
{
|
||||||
console.debug("ЗагрузитьСледующуюТекстуруТемыФишекМаджонга");
|
|
||||||
const загрузка = мир.загрузкаТемыФишек;
|
const загрузка = мир.загрузкаТемыФишек;
|
||||||
var тема = мир.темыФишек[загрузка.имя];
|
var тема = мир.темыФишек[загрузка.имя];
|
||||||
var имяМодуляРесурсов = тема["🗿"];
|
var имяМодуляРесурсов = тема["🗿"];
|
||||||
@@ -71,8 +70,6 @@
|
|||||||
|
|
||||||
ПодготовитьсяКЗагрузкеТемыФишекМаджонга = мир =>
|
ПодготовитьсяКЗагрузкеТемыФишекМаджонга = мир =>
|
||||||
{
|
{
|
||||||
console.debug("ПодготовитьсяКЗагрузкеТемыФишекМаджонга");
|
|
||||||
|
|
||||||
мир.загрузкаТемыФишек = {
|
мир.загрузкаТемыФишек = {
|
||||||
"номер": 1,
|
"номер": 1,
|
||||||
"всего": 42,
|
"всего": 42,
|
||||||
|
|||||||
Reference in New Issue
Block a user