diff --git a/пуск|run.js b/пуск|run.js index df36844..02163b6 100644 --- a/пуск|run.js +++ b/пуск|run.js @@ -3,6 +3,37 @@ // // // // +ИзменитьРазмерОтрисовщикаThreeJS = мир => +{ + var ширина = window.innerWidth * мир.масштаб; + var высота = window.innerHeight * мир.масштаб; + мир.камера.aspect = ширина / высота; + мир.камера.updateProjectionMatrix(); + мир.отрисовщик.setSize(ширина, высота); + + var размер = мир.масштаб * 100; + мир.канва.style = ` +max-width: ${размер}%; +max-height: ${размер}%; +width: ${размер}%; +height: ${размер}%; + `; +}; + + +// // // // + + +ЗадатьОтладочныйМасштаб = мир => +{ + мир.масштаб = 3; + мир.уведомить("изменили масштаб"); +}; + + +// // // // + + ИсправитьОтслеживаниеНажатийНаIOS = мир => { // https://stackoverflow.com/a/31459240/3404710 @@ -18,14 +49,9 @@ window.addEventListener( "touchstart", function(событие) { - var позиция = new THREE.Vector2(); - позиция.x = (событие.touches[0].clientX / window.innerWidth) * 2 - 1; - позиция.y = - (событие.touches[0].clientY / window.innerHeight) * 2 + 1; - мир.позицияНажатия = позиция; - мир.уведомить("нажали"); + сообщитьОНажатии(мир, событие.touches[0]); } ); - }; @@ -37,11 +63,7 @@ window.addEventListener( "click", function(событие) { - var позиция = new THREE.Vector2(); - позиция.x = (событие.clientX / window.innerWidth) * 2 - 1; - позиция.y = - (событие.clientY / window.innerHeight) * 2 + 1; - мир.позицияНажатия = позиция; - мир.уведомить("нажали"); + сообщитьОНажатии(мир, событие); } ); }; @@ -180,7 +202,7 @@ html, body { мир.канва = document.createElement("canvas"); мир.канва.id = "канва-threejs"; мир.канва.style = ` -position: fixed; +position: absolute; left: 0; top: 0; width: 100%; @@ -197,3 +219,12 @@ height: 100%; } }; + +// // // // + + +СоздатьМасштаб = мир => +{ + мир.масштаб = 1; +}; + diff --git a/пуск|run.череда b/пуск|run.череда index ab07dc9..788c5a5 100644 --- a/пуск|run.череда +++ b/пуск|run.череда @@ -1,7 +1,7 @@ пуск модулей маджонга + создать масштаб создать канву ThreeJS настроить ThreeJS -# встроить отрисовщика ThreeJS выбрали раскладку отслеживать изменение размера окна браузера изменить размер отрисовщика ThreeJS @@ -19,4 +19,6 @@ запустить отрисовку изменили размер окна браузера + изменить размер отрисовщика ThreeJS +изменили масштаб изменить размер отрисовщика ThreeJS \ No newline at end of file diff --git a/фишки|tiles.js b/фишки|tiles.js index 498d77b..45a7706 100644 --- a/фишки|tiles.js +++ b/фишки|tiles.js @@ -3,6 +3,15 @@ // // // // +ВывестиКоординатыНажатия = мир => +{ + console.debug("Координаты нажатия:", мир.позицияНажатия.x, мир.позицияНажатия.y); +}; + + +// // // // + + УведомитьОПоражении = мир => { мир.уведомить("поражение"); @@ -445,7 +454,6 @@ мир.уведомить("нашли фишку в координатах нажатия"); } } - }; diff --git a/фишки|tiles.череда b/фишки|tiles.череда index 312c766..c189f0b 100644 --- a/фишки|tiles.череда +++ b/фишки|tiles.череда @@ -12,6 +12,7 @@ нажали проверить возможность поиска фишки можно искать фишку +# вывести координаты нажатия найти фишку в координатах нажатия нашли фишку в координатах нажатия вывести найденную фишку diff --git a/функции|functions.js b/функции|functions.js index 80a1518..ceabe7a 100644 --- a/функции|functions.js +++ b/функции|functions.js @@ -1,5 +1,23 @@ +// // // // + + +сообщитьОНажатии = (мир, событие) => +{ + var позиция = new THREE.Vector2(); + var ширина = window.innerWidth * мир.масштаб; + var высота = window.innerHeight * мир.масштаб; + позиция.x = ((событие.clientX + window.pageXOffset) / ширина ) * 2 - 1; + позиция.y = - ((событие.clientY + window.pageYOffset) / высота) * 2 + 1; + мир.позицияНажатия = позиция; + мир.уведомить("нажали"); +}; + + +// // // // + + фишкуМожноВыбрать = (индексы, индекс) => { var позиция = позицияИндексаФишки(индекс);