From 6895e9bc62428f7efd779a96da0fbb13887efd92 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: Tue, 11 May 2021 16:33:52 +0300 Subject: [PATCH] =?UTF-8?q?-=D1=81=D0=BE=D1=81=D1=82=D0=BE=D1=8F=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=D0=9A=D0=BE=D0=BB=D0=BE=D0=B1=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- игра/110.колобок.js | 52 +++++++++++++++++----------------- игра/111.изба.js | 25 ++++++++++++---- 2 files changed, 46 insertions(+), 31 deletions(-) diff --git a/игра/110.колобок.js b/игра/110.колобок.js index 6e0d8d8..7cb2201 100644 --- a/игра/110.колобок.js +++ b/игра/110.колобок.js @@ -39,14 +39,13 @@ const камера = мир.сцена.cameras.main; камера.startFollow(мир.колобок, false, 0.1, 0.1); - мир.состояниеКолобка = { - мигать: false, - мигание: { }, - прыгучесть: -570, - коэффициентПрыгучести: 1, - прыжок: false, - скоростьПадения: 0, - }; + // Состояние. + мир.колобок["мигать"] = false; + мир.колобок["мигание"] = { }; + мир.колобок["прыгучесть"] = -570; + мир.колобок["коэффициентПрыгучести"] = 1; + мир.колобок["прыжок"] = false; + мир.колобок["скоростьПадения"] = 0; }; @@ -116,10 +115,10 @@ } мир.колобок.setVelocityX(x); - if (мир.управление.прыжок && !мир.состояниеКолобка.прыжок) + if (мир.управление.прыжок && !мир.колобок.прыжок) { - мир.состояниеКолобка.прыжок = true; - var скорость = мир.состояниеКолобка.прыгучесть * мир.состояниеКолобка.коэффициентПрыгучести; + мир.колобок.прыжок = true; + var скорость = мир.колобок.прыгучесть * мир.колобок.коэффициентПрыгучести; мир.колобок.setVelocityY(скорость); мир.уведомить("колобок начал прыжок"); } @@ -140,21 +139,22 @@ ОпределитьОкончаниеПрыжкаКолобка = мир => { - if (!мир.состояниеКолобка.прыжок) + if (!мир.колобок.прыжок) { return; } var скоростьПадения = мир.колобок.body.velocity.y; if ( - (мир.состояниеКолобка.скоростьПадения > 40) && + (мир.колобок.скоростьПадения > 40) && (скоростьПадения == 0) && мир.колобок.body.touching.down ) { - мир.состояниеКолобка.прыжок = false; + мир.уведомить("колобок закончит прыжок"); + мир.колобок.прыжок = false; мир.уведомить("колобок закончил прыжок"); } - мир.состояниеКолобка.скоростьПадения = скоростьПадения; + мир.колобок.скоростьПадения = скоростьПадения; }; @@ -170,7 +170,7 @@ } var надо = "колобок-неподвижен"; - if (мир.состояниеКолобка.прыжок) + if (мир.колобок.прыжок) { надо = "колобок-прыжок"; } @@ -231,7 +231,7 @@ { var конец = new Date(); конец.setSeconds(конец.getSeconds() + 6); - мир.состояниеКолобка.мигание.окончание = конец; + мир.колобок.мигание.окончание = конец; var звук = мир.сцена.sound.get("повреждение"); if (!звук || !звук.isPlaying) @@ -239,13 +239,13 @@ мир.сцена.sound.play("повреждение"); } - if (мир.состояниеКолобка.мигать) + if (мир.колобок.мигать) { return; } - мир.состояниеКолобка.мигать = true; - мир.состояниеКолобка.мигание = { + мир.колобок.мигать = true; + мир.колобок.мигание = { шаг: 0.1, цель: 0, }; @@ -259,17 +259,17 @@ МигатьКолобка = мир => { - if (!мир.состояниеКолобка.мигать) + if (!мир.колобок.мигать) { return; } - var м = мир.состояниеКолобка.мигание; + var м = мир.колобок.мигание; var сейчас = new Date(); if (м.окончание - сейчас < 0) { - мир.состояниеКолобка.мигать = false; + мир.колобок.мигать = false; мир.колобок.alpha = 1; мир.уведомить("закончили мигать колобка"); return; @@ -289,7 +289,7 @@ УменьшитьПрыгучестьКолобка = мир => { - мир.состояниеКолобка.коэффициентПрыгучести = 0.6; + мир.колобок.коэффициентПрыгучести = 0.6; }; @@ -298,7 +298,7 @@ ВосстановитьПрыгучестьКолобка = мир => { - мир.состояниеКолобка.коэффициентПрыгучести = 1; + мир.колобок.коэффициентПрыгучести = 1; }; @@ -311,7 +311,7 @@ }; ВывестиОкончаниеПрыжкаВКонсоль = мир => { - console.debug("окончание прыжка. скорость:", мир.состояниеКолобка.скоростьПадения); + console.debug("окончание прыжка. скорость:", мир.колобок.скоростьПадения); }; diff --git a/игра/111.изба.js b/игра/111.изба.js index d61c1b9..f14eebe 100644 --- a/игра/111.изба.js +++ b/игра/111.изба.js @@ -229,7 +229,8 @@ родитель: мир.сцена.physics, тип: "спрайт", группы: [мир.вещи], - x: 785, + //x: 785, + x: 285, y: 240, texture: "молоко", scaleX: 0.4, @@ -533,7 +534,7 @@ // Определение прыжка по стрелам. мир.сцена.physics.add.collider(мир.колобок, куча, function(a, b) { if (мир.колобок.body.touching.down) { - мир.состояниеКолобка.прыжокПоСтрелам = true; + мир.колобок.прыжокПоСтрелам = true; } }); @@ -595,7 +596,7 @@ ОтследитьПрыжокПоСтрелам = мир => { - мир.состояниеКолобка.прыжокПоСтрелам = null; + мир.колобок.прыжокПоСтрелам = null; }; @@ -604,7 +605,7 @@ ПроверитьНаличиеПрыжкаПоСтрелам = мир => { - if (!мир.состояниеКолобка.прыжокПоСтрелам) + if (!мир.колобок.прыжокПоСтрелам) { return; } @@ -621,7 +622,7 @@ { return; } - var скорость = мир.состояниеКолобка.скоростьПадения * 0.9; + var скорость = мир.колобок.скоростьПадения * 0.9; мир.стрела.setVelocityY(-скорость); }; @@ -731,6 +732,19 @@ }; +// // // // + + + ПроверитьСтолкновениеСМолоком = мир => + { + var молоко = мир.узелСцены("молоко"); + var ст = мир.сцена.physics.add.collider(мир.колобок, молоко); + ст.collideCallback = function(a, b) { + console.debug("столкновение с молоком"); + }; + }; + + /* * * Последовательность @@ -750,6 +764,7 @@ настроить мышей настроить стрелы создать стрелу + проверить столкновение с молоком обновить сцену анимировать пауков анимировать мышей