From 6a7ac6704005bb2e933e83cc8ad67404a42cc271 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=93=D0=BB=D0=B0=D0=B2=D1=80=D0=B5=D0=B4=20=7C=20Glavred?= Date: Fri, 25 Dec 2020 14:52:14 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=BE=D1=82=20=D0=93=D0=BB=D0=B0=D0=B2=D1=80?= =?UTF-8?q?=D0=B5=D0=B4=D0=B0=20=D0=93=D0=B8=D1=82=D0=96=D0=A1=20|=20Chang?= =?UTF-8?q?es=20of=20GitJS=20Glavred?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 0000 | 3 +- 🎬.js | 89 ++++++++++++++++++++++++++++------------------- 🎬.Ρ‡Π΅Ρ€Π΅Π΄Π° | 5 +-- πŸ›.js | 7 ++++ πŸ“–.js | 15 ++++++++ 5 files changed, 80 insertions(+), 39 deletions(-) create mode 100644 πŸ›.js diff --git a/0000 b/0000 index a3fbadb..995788b 100644 --- a/0000 +++ b/0000 @@ -1,7 +1,8 @@ Π‘Ρ†Π΅Π½Π° МадТонга -0.5.1 +1.0.0 https://git.opengamestudio.org/MAOH/CEHMA x /🎬.js /🎬.Ρ‡Π΅Ρ€Π΅Π΄Π° +/πŸ›.js x /πŸ“–.js \ No newline at end of file diff --git a/🎬.js b/🎬.js index 47df495..d778f76 100644 --- a/🎬.js +++ b/🎬.js @@ -1,15 +1,7 @@ +const ОВБВУП_ΠœΠ•Π–Π”Π£_ЀИШКАМИ = 0.02; const ΠšΠžΠ­Π€Π€Π˜Π¦Π˜Π•ΠΠ’_Π’Π«Π‘ΠžΠ’Π« = 1.5; -Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒΠžΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΡƒΡŽΠ‘Ρ„Π΅Ρ€ΡƒΠ’Π¦Π΅Π½Ρ‚Ρ€Π΅ΠšΠΎΡ€Π½Ρ = ΠΌΠΈΡ€ => -{ - var Ρ„ΠΎΡ€ΠΌΠ° = new THREE.SphereBufferGeometry(0.5, 32, 32); - var сфСра = new THREE.Mesh(Ρ„ΠΎΡ€ΠΌΠ°); - сфСра.material = new THREE.MeshLambertMaterial({ color: 0xAA00AA }); - ΠΌΠΈΡ€.ΠΊΠΎΡ€Π΅Π½ΡŒΠ‘Ρ†Π΅Π½Ρ‹ΠœΠ°Π΄ΠΆΠΎΠ½Π³Π°.add(сфСра); -}; - - // // // // @@ -28,13 +20,17 @@ const ΠšΠžΠ­Π€Π€Π˜Π¦Π˜Π•ΠΠ’_Π’Π«Π‘ΠžΠ’Π« = 1.5; Π¦Π΅Π½Ρ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΠ€ΠΈΡˆΠΊΠΈΠ‘Ρ†Π΅Π½Ρ‹ = ΠΌΠΈΡ€ => { + // Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ Π² Ρ†Π΅Π½Ρ‚Ρ€. + ΠΌΠΈΡ€.ΡΡ†Π΅Π½Π°ΠœΠ°Π΄ΠΆΠΎΠ½Π³Π°.position.x = 0; + ΠΌΠΈΡ€.ΡΡ†Π΅Π½Π°ΠœΠ°Π΄ΠΆΠΎΠ½Π³Π°.position.z = 0; + var Ρ€ = ΠΌΠΈΡ€.Ρ€Π°Π·ΠΌΠ΅Ρ€ΠŸΠΎΠ»ΡΠ€ΠΈΡˆΠ΅ΠΊ; // Π£Π±ΠΈΡ€Π°Π΅ΠΌ пустоту слСва. - ΠΌΠΈΡ€.ΠΊΠΎΡ€Π΅Π½ΡŒΠ‘Ρ†Π΅Π½Ρ‹ΠœΠ°Π΄ΠΆΠΎΠ½Π³Π°.position.x -= Ρ€.ΠΌΠΈΠ½.x; - ΠΌΠΈΡ€.ΠΊΠΎΡ€Π΅Π½ΡŒΠ‘Ρ†Π΅Π½Ρ‹ΠœΠ°Π΄ΠΆΠΎΠ½Π³Π°.position.z -= Ρ€.ΠΌΠΈΠ½.z; + ΠΌΠΈΡ€.ΡΡ†Π΅Π½Π°ΠœΠ°Π΄ΠΆΠΎΠ½Π³Π°.position.x -= Ρ€.ΠΌΠΈΠ½.x; + ΠΌΠΈΡ€.ΡΡ†Π΅Π½Π°ΠœΠ°Π΄ΠΆΠΎΠ½Π³Π°.position.z -= Ρ€.ΠΌΠΈΠ½.z; // Π¦Π΅Π½Ρ‚Ρ€ΠΈΡ€ΡƒΠ΅ΠΌ остаток. - ΠΌΠΈΡ€.ΠΊΠΎΡ€Π΅Π½ΡŒΠ‘Ρ†Π΅Π½Ρ‹ΠœΠ°Π΄ΠΆΠΎΠ½Π³Π°.position.x -= (Ρ€.макс.x - Ρ€.ΠΌΠΈΠ½.x) / 2; - ΠΌΠΈΡ€.ΠΊΠΎΡ€Π΅Π½ΡŒΠ‘Ρ†Π΅Π½Ρ‹ΠœΠ°Π΄ΠΆΠΎΠ½Π³Π°.position.z -= (Ρ€.макс.z - Ρ€.ΠΌΠΈΠ½.z) / 2; + ΠΌΠΈΡ€.ΡΡ†Π΅Π½Π°ΠœΠ°Π΄ΠΆΠΎΠ½Π³Π°.position.x -= (Ρ€.макс.x - Ρ€.ΠΌΠΈΠ½.x) / 2; + ΠΌΠΈΡ€.ΡΡ†Π΅Π½Π°ΠœΠ°Π΄ΠΆΠΎΠ½Π³Π°.position.z -= (Ρ€.макс.z - Ρ€.ΠΌΠΈΠ½.z) / 2; }; @@ -51,7 +47,7 @@ const ΠšΠžΠ­Π€Π€Π˜Π¦Π˜Π•ΠΠ’_Π’Π«Π‘ΠžΠ’Π« = 1.5; "x": 0, "z": 0, }; - for (var Π½ΠΎΠΌΠ΅Ρ€ in ΠΌΠΈΡ€.Ρ„ΠΈΡˆΠΊΠΈΠ‘Ρ†Π΅Π½Ρ‹) + for (var Π½ΠΎΠΌΠ΅Ρ€ in ΠΌΠΈΡ€.Ρ„ΠΈΡˆΠΊΠΈΠœΠ°Π΄ΠΆΠΎΠ½Π³Π°) { const Ρ„ = ΠΌΠΈΡ€.Ρ„ΠΈΡˆΠΊΠΈΠ‘Ρ†Π΅Π½Ρ‹[Π½ΠΎΠΌΠ΅Ρ€]; if (Ρ„.position.x < ΠΌΠΈΠ½.x) @@ -84,7 +80,7 @@ const ΠšΠžΠ­Π€Π€Π˜Π¦Π˜Π•ΠΠ’_Π’Π«Π‘ΠžΠ’Π« = 1.5; Π—Π°Π΄Π°Ρ‚ΡŒΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹Π€ΠΈΡˆΠΊΠ°ΠΌΠ‘Ρ†Π΅Π½Ρ‹ = ΠΌΠΈΡ€ => { - for (var Π½ in ΠΌΠΈΡ€.Ρ„ΠΈΡˆΠΊΠΈΠ‘Ρ†Π΅Π½Ρ‹) + for (var Π½ in ΠΌΠΈΡ€.Ρ„ΠΈΡˆΠΊΠΈΠœΠ°Π΄ΠΆΠΎΠ½Π³Π°) { var Ρ„ = ΠΌΠΈΡ€.Ρ„ΠΈΡˆΠΊΠΈΠ‘Ρ†Π΅Π½Ρ‹[Π½]; var Π³ = ΠΌΠΈΡ€.Ρ„ΠΈΡˆΠΊΠΈΠœΠ°Π΄ΠΆΠΎΠ½Π³Π°[Π½]["🚩"]; @@ -94,25 +90,11 @@ const ΠšΠžΠ­Π€Π€Π˜Π¦Π˜Π•ΠΠ’_Π’Π«Π‘ΠžΠ’Π« = 1.5; }; -// // // // - - -Π£Π±Ρ€Π°Ρ‚ΡŒΠ‘Ρ‚Π°Ρ€Ρ‹Π΅Π€ΠΈΡˆΠΊΠΈΠ‘Ρ†Π΅Π½Ρ‹ = ΠΌΠΈΡ€ => -{ - if (ΠΌΠΈΡ€.ΡΡ†Π΅Π½Π°ΠœΠ°Π΄ΠΆΠΎΠ½Π³Π°.children.length) - { - ΠΌΠΈΡ€.ΡΡ†Π΅Π½Π°ΠœΠ°Π΄ΠΆΠΎΠ½Π³Π°.remove(ΠΌΠΈΡ€.ΠΊΠΎΡ€Π΅Π½ΡŒΠ‘Ρ†Π΅Π½Ρ‹ΠœΠ°Π΄ΠΆΠΎΠ½Π³Π°); - } - ΠΌΠΈΡ€.ΠΊΠΎΡ€Π΅Π½ΡŒΠ‘Ρ†Π΅Π½Ρ‹ΠœΠ°Π΄ΠΆΠΎΠ½Π³Π° = new THREE.Group(); - ΠΌΠΈΡ€.ΡΡ†Π΅Π½Π°ΠœΠ°Π΄ΠΆΠΎΠ½Π³Π°.add(ΠΌΠΈΡ€.ΠΊΠΎΡ€Π΅Π½ΡŒΠ‘Ρ†Π΅Π½Ρ‹ΠœΠ°Π΄ΠΆΠΎΠ½Π³Π°); - ΠΌΠΈΡ€.Ρ„ΠΈΡˆΠΊΠΈΠ‘Ρ†Π΅Π½Ρ‹ = []; -}; - // // // // -Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒΠΠΎΠ²Ρ‹Π΅Π€ΠΈΡˆΠΊΠΈΠ‘Ρ†Π΅Π½Ρ‹ = ΠΌΠΈΡ€ => +ΠŸΠ΅Ρ€Π΅Π·Π°Π΄Π°Ρ‚ΡŒΠ€ΠΈΡˆΠΊΠΈΠ‘Ρ†Π΅Π½Ρ‹ = ΠΌΠΈΡ€ => { var Ρ„ΠΈΡˆΠΊΠ° = ΠΌΠΈΡ€.ΠΌΠΎΠ΄Π΅Π»ΡŒΠ€ΠΈΡˆΠΊΠΈΠ‘Ρ†Π΅Π½Ρ‹; var Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ = Ρ„ΠΈΡˆΠΊΠ°.geometry.boundingBox; @@ -122,16 +104,14 @@ const ΠšΠžΠ­Π€Π€Π˜Π¦Π˜Π•ΠΠ’_Π’Π«Π‘ΠžΠ’Π« = 1.5; (Π³Ρ€Π°Π½ΠΈΡ†Ρ‹.max.y - Π³Ρ€Π°Π½ΠΈΡ†Ρ‹.min.y), ]; var отступ = ΠΌΠΈΡ€.ΠΎΡ‚ΡΡ‚ΡƒΠΏΠœΠ΅ΠΆΠ΄ΡƒΠ€ΠΈΡˆΠΊΠ°ΠΌΠΈΠ‘Ρ†Π΅Π½Ρ‹; - for (var Π½ΠΎΠΌΠ΅Ρ€ in ΠΌΠΈΡ€.Ρ„ΠΈΡˆΠΊΠΈΠœΠ°Π΄ΠΆΠΎΠ½Π³Π°) { // Π£Π·Π΅Π» сцСны. - var Ρ„ΠΌ = ΠΌΠΈΡ€.Ρ„ΠΈΡˆΠΊΠΈΠœΠ°Π΄ΠΆΠΎΠ½Π³Π°[Π½ΠΎΠΌΠ΅Ρ€]; - var Ρ„ = Ρ„ΠΈΡˆΠΊΠ°.clone(); + var Ρ„ = ΠΌΠΈΡ€.Ρ„ΠΈΡˆΠΊΠΈΠ‘Ρ†Π΅Π½Ρ‹[Π½ΠΎΠΌΠ΅Ρ€]; + Ρ„.layers.set(0); Ρ„.userData = Π½ΠΎΠΌΠ΅Ρ€; - ΠΌΠΈΡ€.Ρ„ΠΈΡˆΠΊΠΈΠ‘Ρ†Π΅Π½Ρ‹.push(Ρ„); - ΠΌΠΈΡ€.ΠΊΠΎΡ€Π΅Π½ΡŒΠ‘Ρ†Π΅Π½Ρ‹ΠœΠ°Π΄ΠΆΠΎΠ½Π³Π°.add(Ρ„); // РасполоТСниС. + var Ρ„ΠΌ = ΠΌΠΈΡ€.Ρ„ΠΈΡˆΠΊΠΈΠœΠ°Π΄ΠΆΠΎΠ½Π³Π°[Π½ΠΎΠΌΠ΅Ρ€]; var ΠΏ = Ρ„ΠΌ["πŸ“"]; var слой = ΠΏ[0]; var ряд = ΠΏ[1]; @@ -146,8 +126,45 @@ const ΠšΠžΠ­Π€Π€Π˜Π¦Π˜Π•ΠΠ’_Π’Π«Π‘ΠžΠ’Π« = 1.5; // // // // +Π‘ΠΊΡ€Ρ‹Ρ‚ΡŒΠ€ΠΈΡˆΠΊΠΈΠ‘Ρ†Π΅Π½Ρ‹ = ΠΌΠΈΡ€ => +{ + var Ρ„ΠΈΡˆΠΊΠΈ = ΠΌΠΈΡ€.Ρ„ΠΈΡˆΠΊΠΈΠ‘Ρ†Π΅Π½Ρ‹; + for (var Π½ in Ρ„ΠΈΡˆΠΊΠΈ) + { + var Ρ„ = Ρ„ΠΈΡˆΠΊΠΈ[Π½]; + Ρ„.layers.set(1); + } +}; + + +// // // // + + +Π”ΠΎΡΠΎΠ·Π΄Π°Ρ‚ΡŒΠ€ΠΈΡˆΠΊΠΈΠ‘Ρ†Π΅Π½Ρ‹ = ΠΌΠΈΡ€ => +{ + // Если Ρ„ΠΈΡˆΠ΅ΠΊ Π² сцСнС ΡƒΠΆΠ΅ достаточно, Ρ‚ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅ΠΌ. + if (ΠΌΠΈΡ€.Ρ„ΠΈΡˆΠΊΠΈΠ‘Ρ†Π΅Π½Ρ‹.length >= ΠΌΠΈΡ€.Ρ„ΠΈΡˆΠΊΠΈΠœΠ°Π΄ΠΆΠΎΠ½Π³Π°.length) + { + return; + } + + var Ρ„ΠΈΡˆΠΊΠ° = ΠΌΠΈΡ€.ΠΌΠΎΠ΄Π΅Π»ΡŒΠ€ΠΈΡˆΠΊΠΈΠ‘Ρ†Π΅Π½Ρ‹; + var ΠΊΠΎΠ»Π²ΠΎ = ΠΌΠΈΡ€.Ρ„ΠΈΡˆΠΊΠΈΠœΠ°Π΄ΠΆΠΎΠ½Π³Π°.length - ΠΌΠΈΡ€.Ρ„ΠΈΡˆΠΊΠΈΠ‘Ρ†Π΅Π½Ρ‹.length; + for (var Π½ = 0; Π½ < ΠΊΠΎΠ»Π²ΠΎ; ++Π½) + { + var Ρ„ = Ρ„ΠΈΡˆΠΊΠ°.clone(); + ΠΌΠΈΡ€.Ρ„ΠΈΡˆΠΊΠΈΠ‘Ρ†Π΅Π½Ρ‹.push(Ρ„); + ΠΌΠΈΡ€.ΠΊΠΎΡ€Π΅Π½ΡŒΠ‘Ρ†Π΅Π½Ρ‹ΠœΠ°Π΄ΠΆΠΎΠ½Π³Π°.add(Ρ„); + } +} + + +// // // // + + ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒΠ‘Ρ†Π΅Π½ΡƒΠœΠ°Π΄ΠΆΠΎΠ½Π³Π° = ΠΌΠΈΡ€ => { + ΠΌΠΈΡ€.ΠΎΡ‚ΡΡ‚ΡƒΠΏΠœΠ΅ΠΆΠ΄ΡƒΠ€ΠΈΡˆΠΊΠ°ΠΌΠΈΠ‘Ρ†Π΅Π½Ρ‹ = ОВБВУП_ΠœΠ•Π–Π”Π£_ЀИШКАМИ; ΠΌΠΈΡ€.ΡΡ†Π΅Π½Π°ΠœΠ°Π΄ΠΆΠΎΠ½Π³Π° = new THREE.Group(); - ΠΌΠΈΡ€.ΠΎΡ‚ΡΡ‚ΡƒΠΏΠœΠ΅ΠΆΠ΄ΡƒΠ€ΠΈΡˆΠΊΠ°ΠΌΠΈΠ‘Ρ†Π΅Π½Ρ‹ = 0.02; + ΠΌΠΈΡ€.Ρ„ΠΈΡˆΠΊΠΈΠ‘Ρ†Π΅Π½Ρ‹ = []; }; \ No newline at end of file diff --git a/🎬.Ρ‡Π΅Ρ€Π΅Π΄Π° b/🎬.Ρ‡Π΅Ρ€Π΅Π΄Π° index cbb0631..8931540 100644 --- a/🎬.Ρ‡Π΅Ρ€Π΅Π΄Π° +++ b/🎬.Ρ‡Π΅Ρ€Π΅Π΄Π° @@ -3,9 +3,10 @@ Π½Π°Π΄ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„ΠΈΡˆΠΊΠΈ Π² сцСнС Π·Π°ΡΠ΅Ρ‡ΡŒ врСмя Π‘ - ΡƒΠ±Ρ€Π°Ρ‚ΡŒ старыС Ρ„ΠΈΡˆΠΊΠΈ сцСны + Π΄ΠΎΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„ΠΈΡˆΠΊΠΈ сцСны + ΡΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„ΠΈΡˆΠΊΠΈ сцСны Π·Π°ΡΠ΅Ρ‡ΡŒ врСмя Π‘ - ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΠΈΡˆΠΊΠΈ сцСны + ΠΏΠ΅Ρ€Π΅Π·Π°Π΄Π°Ρ‚ΡŒ Ρ„ΠΈΡˆΠΊΠΈ сцСны Π·Π°ΡΠ΅Ρ‡ΡŒ врСмя Π‘ ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ поля Ρ„ΠΈΡˆΠ΅ΠΊ Π·Π°ΡΠ΅Ρ‡ΡŒ врСмя Π‘ diff --git a/πŸ›.js b/πŸ›.js new file mode 100644 index 0000000..4158e55 --- /dev/null +++ b/πŸ›.js @@ -0,0 +1,7 @@ +Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒΠžΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΡƒΡŽΠ‘Ρ„Π΅Ρ€ΡƒΠ’Π¦Π΅Π½Ρ‚Ρ€Π΅ΠšΠΎΡ€Π½Ρ = ΠΌΠΈΡ€ => +{ + var Ρ„ΠΎΡ€ΠΌΠ° = new THREE.SphereBufferGeometry(0.5, 32, 32); + var сфСра = new THREE.Mesh(Ρ„ΠΎΡ€ΠΌΠ°); + сфСра.material = new THREE.MeshLambertMaterial({ color: 0xAA00AA }); + ΠΌΠΈΡ€.ΠΊΠΎΡ€Π΅Π½ΡŒΠ‘Ρ†Π΅Π½Ρ‹ΠœΠ°Π΄ΠΆΠΎΠ½Π³Π°.add(сфСра); +}; \ No newline at end of file diff --git a/πŸ“–.js b/πŸ“–.js index fcebc18..2f6e1fa 100644 --- a/πŸ“–.js +++ b/πŸ“–.js @@ -1,3 +1,18 @@ +Π£Π΄Π°Π»ΠΈΡ‚ΡŒΠ€ΠΈΡˆΠΊΠΈΠ‘Ρ†Π΅Π½Ρ‹ = ΠΌΠΈΡ€ => +{ + if (ΠΌΠΈΡ€.ΡΡ†Π΅Π½Π°ΠœΠ°Π΄ΠΆΠΎΠ½Π³Π°.children.length) + { + ΠΌΠΈΡ€.ΡΡ†Π΅Π½Π°ΠœΠ°Π΄ΠΆΠΎΠ½Π³Π°.remove(ΠΌΠΈΡ€.ΠΊΠΎΡ€Π΅Π½ΡŒΠ‘Ρ†Π΅Π½Ρ‹ΠœΠ°Π΄ΠΆΠΎΠ½Π³Π°); + } + ΠΌΠΈΡ€.ΠΊΠΎΡ€Π΅Π½ΡŒΠ‘Ρ†Π΅Π½Ρ‹ΠœΠ°Π΄ΠΆΠΎΠ½Π³Π° = new THREE.Group(); + ΠΌΠΈΡ€.ΡΡ†Π΅Π½Π°ΠœΠ°Π΄ΠΆΠΎΠ½Π³Π°.add(ΠΌΠΈΡ€.ΠΊΠΎΡ€Π΅Π½ΡŒΠ‘Ρ†Π΅Π½Ρ‹ΠœΠ°Π΄ΠΆΠΎΠ½Π³Π°); + ΠΌΠΈΡ€.Ρ„ΠΈΡˆΠΊΠΈΠ‘Ρ†Π΅Π½Ρ‹ = []; +}; + + +// // // // + + Π‘ΠΊΡ€Ρ‹Ρ‚ΡŒΠ£Π±Ρ€Π°Π½Π½Ρ‹Π΅Π€ΠΈΡˆΠΊΠΈΠ’Π‘Ρ†Π΅Π½Π΅ = ΠΌΠΈΡ€ => { for (var Π½ΠΎΠΌΠ΅Ρ€ in ΠΌΠΈΡ€.ΡƒΠ±Ρ€Π°Π½Π½Ρ‹Π΅Π€ΠΈΡˆΠΊΠΈΠœΠ°Π΄ΠΆΠΎΠ½Π³Π°)