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