From 5b106dd8c7d4640bfb50ff952c52591dfbb57f91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B8=D1=85=D0=B0=D0=B8=D0=BB=20=D0=9A=D0=B0=D0=BF?= =?UTF-8?q?=D0=B5=D0=BB=D1=8C=D0=BA=D0=BE?= Date: Sun, 9 May 2021 13:12:46 +0300 Subject: [PATCH] =?UTF-8?q?=D1=87=D0=B0=D1=81=D1=82=D0=B8=20=D0=B2=D1=81?= =?UTF-8?q?=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- игра/108.группы.js | 1 + игра/111.изба.js | 92 +++++++++++++++++++++++++----------- 2 files changed, 65 insertions(+), 28 deletions(-) diff --git a/игра/108.группы.js b/игра/108.группы.js index 1b682f0..e0be101 100644 --- a/игра/108.группы.js +++ b/игра/108.группы.js @@ -14,6 +14,7 @@ мир.платформы = мир.сцена.physics.add.staticGroup(); мир.вещи = мир.сцена.add.group(); мир.враги = мир.сцена.physics.add.group({ allowGravity: false }); + мир.стрелы = мир.сцена.physics.add.staticGroup(); }; diff --git a/игра/111.изба.js b/игра/111.изба.js index 475278b..ea4e801 100644 --- a/игра/111.изба.js +++ b/игра/111.изба.js @@ -354,7 +354,49 @@ скорость: 375, }, - + кучаСтрел: { + родитель: мир.стрелы, + тип: "платформа", + x: 1270, + y: 405, + texture: "основа", + originX: 0, + originY: 0, + scaleX: 25, + scaleY: 2, + visible: false, + }, + лук: { + родитель: мир.стрелы, + тип: "платформа", + x: 1280, + y: 200, + texture: "основа", + originX: 0, + originY: 0, + visible: false, + }, + пускСтрелы: { + родитель: мир.стрелы, + тип: "платформа", + x: 1270, + y: 160, + texture: "основа", + originX: 0, + originY: 0, + visible: false, + }, + границаПолётаСтрелы: { + родитель: мир.стрелы, + тип: "платформа", + x: 1830, + y: 200, + texture: "основа", + originX: 0, + originY: 0, + scaleY: 20, + visible: false, + }, }; }; @@ -480,30 +522,18 @@ // // // // -СоздатьСтрелы = мир => +НастроитьСтрелы = мир => { - мир.пфСтрел = мир.сцена.physics.add.staticGroup(); - var куча = мир.пфСтрел.create(1270, 405, "основа").setOrigin(0, 0); - куча.setScale(25, 2).refreshBody(); + var куча = мир.узелСцены("кучаСтрел"); куча.body.checkCollision.down = false; - куча.setVisible(false); - - мир.пфЛук = мир.пфСтрел.create(1280, 200, "основа").setOrigin(0, 0); - мир.пфЛук.body.checkCollision.down = false; - мир.пфЛук.setVisible(false); - - var пуск = мир.пфСтрел.create(1270, 160, "основа").setOrigin(0, 0); - пуск.setVisible(false); - - мир.пфОкно = мир.пфСтрел.create(1830, 200, "основа").setOrigin(0, 0); - мир.пфОкно.setScale(1, 20).refreshBody(); - мир.пфОкно.setVisible(false); + var лук = мир.узелСцены("лук"); + лук.body.checkCollision.down = false; + var пуск = мир.узелСцены("пускСтрелы"); // Определение прыжка по стрелам. мир.сцена.physics.add.collider(мир.колобок, куча, function(a, b) { if (мир.колобок.body.touching.down) { мир.состояниеКолобка.прыжокПоСтрелам = true; -console.debug("прыжок по стрелам"); } }); @@ -514,7 +544,6 @@ console.debug("прыжок по стрелам"); { мир.пускСтрелы = true; мир.уведомить("пуск стрелы"); -console.debug("пуск стрелы"); } }; стПуск.overlapOnly = true; @@ -537,29 +566,27 @@ console.debug("пуск стрелы"); мир.сцена.physics.add.collider(мир.стрела, мир.платформы); // Определение заряда стрелы. - var стЛук = мир.сцена.physics.add.collider(мир.стрела, мир.пфЛук); - стЛук.collideCallback = function заряд(a, b) { + var лук = мир.узелСцены("лук"); + var стЛук = мир.сцена.physics.add.collider(мир.стрела, лук); + стЛук.collideCallback = function(a, b) { if (мир.стрела.body.touching.down && !мир.стрелаЗаряжена) { мир.стрелаЗаряжена = true; мир.уведомить("стрела заряжена"); -console.debug("стрела заряжена"); } }; // Определение столкновения с окном. - var стОкно = мир.сцена.physics.add.collider(мир.стрела, мир.пфОкно); + var граница = мир.узелСцены("границаПолётаСтрелы"); + var стОкно = мир.сцена.physics.add.collider(мир.стрела, граница); стОкно.collideCallback = function(a, b) { if (мир.стрелаЗаряжена && мир.пускСтрелы) { мир.стрелаЗаряжена = false; мир.пускСтрелы = false; мир.уведомить("удар стрелы об окно"); -console.debug("удар стрелы об окно"); } }; - -console.debug("стрела.x", мир.стрела.x); }; @@ -622,7 +649,16 @@ console.debug("стрела.x", мир.стрела.x); ПуститьСтрелу = мир => { - мир.стрела.setVelocityX(1200); + function randInt(min, max) + { + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random#getting_a_random_integer_between_two_values + min = Math.ceil(min); + max = Math.floor(max); + return Math.floor(Math.random() * (max - min)) + min; + } + var скорость = randInt(1100, 1300); + + мир.стрела.setVelocityX(скорость); }; @@ -712,7 +748,7 @@ console.debug("стрела.x", мир.стрела.x); позволить платформам пропускать прыжки настроить пауков настроить мышей - создать стрелы + настроить стрелы создать стрелу обновить сцену анимировать пауков