From 19218fd328ba86a7eff00f4055d6d2ad3e8a714e 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 18:05:14 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B4=D0=BE=D0=BF=D0=B2=D1=8B=D1=81=D1=82?= =?UTF-8?q?=D1=80=D0=B5=D0=BB=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- игра/111.изба.js | 77 ++++++++++++++++++++++++++++------------ 1 file changed, 55 insertions(+), 22 deletions(-) diff --git a/игра/111.изба.js b/игра/111.изба.js index 1583e5b..ab50dd8 100644 --- a/игра/111.изба.js +++ b/игра/111.изба.js @@ -34,6 +34,10 @@ мир.сцена.sound.play("звук-избы", { loop: true }); мир.сцена.add.image(0, 0, "изба").setOrigin(0, 0); + + мир.разбитоеОкно = мир.сцена.add.image(1660, 183, "окно-разбито"); + мир.разбитоеОкно.setOrigin(0, 0).setScale(0.75, 0.75); + мир.разбитоеОкно.setVisible(false); }; @@ -323,30 +327,48 @@ куча.body.checkCollision.down = false; куча.setVisible(false); - var лук = мир.пфСтрел.create(1280, 200, "основа").setOrigin(0, 0); - лук.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); - var окно = мир.пфСтрел.create(1830, 200, "основа").setOrigin(0, 0); - окно.setScale(1, 20).refreshBody(); - окно.setVisible(false); + мир.пфОкно = мир.пфСтрел.create(1830, 200, "основа").setOrigin(0, 0); + мир.пфОкно.setScale(1, 20).refreshBody(); + мир.пфОкно.setVisible(false); // Определение прыжка по стрелам. мир.сцена.physics.add.collider(мир.колобок, куча, function(a, b) { if (мир.колобок.body.touching.down) { мир.состояниеКолобка.прыжокПоСтрелам = true; +console.debug("прыжок по стрелам"); } }); + // Определение пуска стрелы. + var стПуск = мир.сцена.physics.add.collider(мир.колобок, пуск); + стПуск.collideCallback = function(a, b) { + if (мир.стрелаЗаряжена && !мир.пускСтрелы) + { + мир.пускСтрелы = true; + мир.уведомить("пуск стрелы"); +console.debug("пуск стрелы"); + } + }; + стПуск.overlapOnly = true; +}; + + +// // // // +СоздатьСтрелу = мир => +{ мир.стрелаЗаряжена = false; мир.пускСтрелы = false; - мир.стрела = мир.сцена.physics.add.sprite(1250, 380, "стрела").setOrigin(0, 0); + мир.стрела = мир.сцена.physics.add.sprite(1250, 397, "стрела").setOrigin(0, 0); мир.стрела.setScale(0.5, 0.5).refreshBody(); мир.стрела.depth = 5; @@ -354,35 +376,29 @@ мир.сцена.physics.add.collider(мир.стрела, мир.платформы); // Определение заряда стрелы. - var стЛук = мир.сцена.physics.add.collider(мир.стрела, лук); + var стЛук = мир.сцена.physics.add.collider(мир.стрела, мир.пфЛук); стЛук.collideCallback = function заряд(a, b) { if (мир.стрела.body.touching.down && !мир.стрелаЗаряжена) { мир.стрелаЗаряжена = true; мир.уведомить("стрела заряжена"); +console.debug("стрела заряжена"); } }; - // Определение пуска стрелы. - var стПуск = мир.сцена.physics.add.collider(пуск, мир.колобок); - стПуск.collideCallback = function(a, b) { - if (мир.стрелаЗаряжена && !мир.пускСтрелы) - { - мир.пускСтрелы = true; - мир.уведомить("пуск стрелы"); - } - }; - стПуск.overlapOnly = true; - - var стОкно = мир.сцена.physics.add.collider(мир.стрела, окно); + // Определение столкновения с окном. + var стОкно = мир.сцена.physics.add.collider(мир.стрела, мир.пфОкно); стОкно.collideCallback = function(a, b) { if (мир.стрелаЗаряжена && мир.пускСтрелы) { мир.стрелаЗаряжена = false; мир.пускСтрелы = false; мир.уведомить("удар стрелы об окно"); +console.debug("удар стрелы об окно"); } }; + +console.debug("стрела.x", мир.стрела.x); }; @@ -463,8 +479,21 @@ ОтобразитьРазбитоеОкно = мир => { - var окно = мир.сцена.add.image(1660, 183, "окно-разбито"); - окно.setOrigin(0, 0).setScale(0.75, 0.75); + мир.разбитоеОкно.setVisible(true); +}; + + +// // // // + + +УведомитьЧерезПолсекундыПослеУдара = мир => +{ + setTimeout( + function() { + мир.уведомить("через полсекунды после удара"); + }, + 500 + ); }; @@ -487,6 +516,7 @@ создать пауков создать мышей создать стрелы + создать стрелу обновить сцену анимировать пауков анимировать мышей @@ -504,5 +534,8 @@ удар стрелы об окно воспроизвести звук удара стрелы об окно отобразить разбитое окно + уведомить через полсекунды после удара +через полсекунды после удара + создать стрелу `);