From 9d3f3466a082f7c3e1306e6a9740c08f3dde8e9d 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: Mon, 3 May 2021 17:14:21 +0300 Subject: [PATCH] =?UTF-8?q?=D0=BF=D1=84/=D1=81=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- игра/111.изба.js | 77 +++++++++++++++++++--------------------- 1 file changed, 37 insertions(+), 40 deletions(-) diff --git a/игра/111.изба.js b/игра/111.изба.js index 9fb1228..1f37d5d 100644 --- a/игра/111.изба.js +++ b/игра/111.изба.js @@ -317,66 +317,63 @@ СоздатьСтрелы = мир => { - мир.стрелаЗаряжена = false; - мир.пускСтрелы = false; - - // Кучка стрел. - var группаСтрел = мир.сцена.physics.add.staticGroup(); - var стрелы = группаСтрел.create(1270, 405, "основа").setOrigin(0, 0); - стрелы.setScale(25, 2).refreshBody(); - стрелы.body.checkCollision.down = false; - стрелы.setVisible(false); - var столкновение = мир.сцена.physics.add.collider(мир.колобок, стрелы); - столкновение.collideCallback = function(a, b) { + мир.пфСтрел = мир.сцена.physics.add.staticGroup(); + // Куча стрел. + var куча = мир.пфСтрел.create(1270, 405, "основа").setOrigin(0, 0); + куча.setScale(25, 2).refreshBody(); + куча.body.checkCollision.down = false; + куча.setVisible(false); + мир.сцена.physics.add.collider(мир.колобок, куча, function(a, b) { if (мир.колобок.body.touching.down) { мир.состояниеКолобка.прыжокПоСтрелам = true; } - }; + }); - // Стрела к луку. - мир.стрелаКЛуку = мир.сцена.physics.add.sprite(1250, 380, "стрела").setOrigin(0, 0); - мир.стрелаКЛуку.setScale(0.5, 0.5).refreshBody(); - мир.стрелаКЛуку.depth = 5; + мир.стрелаЗаряжена = false; + мир.пускСтрелы = false; + // Стрела лука. + мир.стрелаЛука = мир.сцена.physics.add.sprite(1250, 380, "стрела").setOrigin(0, 0); + мир.стрелаЛука.setScale(0.5, 0.5).refreshBody(); + мир.стрелаЛука.depth = 5; // Учитываем платформы. - мир.сцена.physics.add.collider(мир.стрелаКЛуку, мир.каркас); - мир.сцена.physics.add.collider(мир.стрелаКЛуку, мир.платформы); + мир.сцена.physics.add.collider(мир.стрелаЛука, мир.каркас); + мир.сцена.physics.add.collider(мир.стрелаЛука, мир.платформы); - // Платформа для стрелы у лука, чтобы стрела оставалась в луке. - var платформы = мир.сцена.physics.add.staticGroup(); - var платформаЛука = платформы.create(1280, 200, "основа").setOrigin(0, 0); - платформаЛука.body.checkCollision.down = false; - var столкновениеЛука = мир.сцена.physics.add.collider(мир.стрелаКЛуку, платформаЛука); - платформаЛука.setVisible(false); + // Платформа для стрелы лука, чтобы оставаться в луке. + var пфЛука = мир.пфСтрел.create(1280, 200, "основа").setOrigin(0, 0); + пфЛука.body.checkCollision.down = false; + пфЛука.setVisible(false); + var стЛука = мир.сцена.physics.add.collider(мир.стрелаЛука, пфЛука); // Определение заряда стрелы. - столкновениеЛука.collideCallback = function заряд(a, b) { - if (мир.стрелаКЛуку.body.touching.down && !мир.стрелаЗаряжена) + стЛука.collideCallback = function заряд(a, b) { + if (мир.стрелаЛука.body.touching.down && !мир.стрелаЗаряжена) { мир.стрелаЗаряжена = true; мир.уведомить("стрела заряжена"); } }; - // Определение пересечения с заряженной стрелой. - var платформаРазряда = платформы.create(1270, 160, "основа").setOrigin(0, 0); - платформаРазряда.setVisible(false); - var разряд = мир.сцена.physics.add.collider(платформаРазряда, мир.колобок); - разряд.collideCallback = function(a, b) { + // Определение пуска стрелы. + var пфПуска = мир.пфСтрел.create(1270, 160, "основа").setOrigin(0, 0); + пфПуска.setVisible(false); + var стПуска = мир.сцена.physics.add.collider(пфПуска, мир.колобок); + стПуска.collideCallback = function(a, b) { if (мир.стрелаЗаряжена && !мир.пускСтрелы) { мир.пускСтрелы = true; мир.уведомить("пуск стрелы"); } }; - разряд.overlapOnly = true; + стПуска.overlapOnly = true; // Платформа для стрелы у окна, чтобы стрела не летела дальше. - var платформаОкна = платформы.create(1830, 200, "основа").setOrigin(0, 0); - платформаОкна.setScale(1, 20).refreshBody(); - var ударОбОкно = мир.сцена.physics.add.collider(мир.стрелаКЛуку, платформаОкна); - платформаОкна.setVisible(false); - ударОбОкно.collideCallback = function(a, b) { + var пфОкна = мир.пфСтрел.create(1830, 200, "основа").setOrigin(0, 0); + пфОкна.setScale(1, 20).refreshBody(); + var стОкна = мир.сцена.physics.add.collider(мир.стрелаЛука, пфОкна); + пфОкна.setVisible(false); + стОкна.collideCallback = function(a, b) { if (мир.стрелаЗаряжена && мир.пускСтрелы) { мир.стрелаЗаряжена = false; @@ -414,12 +411,12 @@ ПодкидыватьСтрелуКЛуку = мир => { - if (!мир.стрелаКЛуку.body.touching.down || мир.стрелаЗаряжена) + if (!мир.стрелаЛука.body.touching.down || мир.стрелаЗаряжена) { return; } var скорость = мир.состояниеКолобка.скоростьПадения * 0.9; - мир.стрелаКЛуку.setVelocityY(-скорость); + мир.стрелаЛука.setVelocityY(-скорость); }; @@ -446,7 +443,7 @@ ПуститьСтрелу = мир => { - мир.стрелаКЛуку.setVelocityX(1200); + мир.стрелаЛука.setVelocityX(1200); };