diff --git a/игра/110.колобок.js b/игра/110.колобок.js index 1efda50..ae9851a 100644 --- a/игра/110.колобок.js +++ b/игра/110.колобок.js @@ -41,6 +41,8 @@ мигание: { }, прыгучесть: -570, коэффициентПрыгучести: 1, + прыжок: false, + скоростьПадения: 0, }; }; @@ -111,11 +113,12 @@ } мир.колобок.setVelocityX(x); - if (мир.управление.прыжок && мир.колобок.body.touching.down) + if (мир.управление.прыжок && !мир.состояниеКолобка.прыжок) { + мир.состояниеКолобка.прыжок = true; var скорость = мир.состояниеКолобка.прыгучесть * мир.состояниеКолобка.коэффициентПрыгучести; мир.колобок.setVelocityY(скорость); - мир.сцена.sound.play("прыжок"); + мир.уведомить("колобок начал прыжок"); } }; @@ -123,8 +126,45 @@ // // // // +ВоспроизвестиЗвукПрыжка = мир => +{ + мир.сцена.sound.play("прыжок"); +}; + + +// // // // + + +ОпределитьОкончаниеПрыжкаКолобка = мир => +{ + if (!мир.состояниеКолобка.прыжок) + { + return; + } + + var скоростьПадения = мир.колобок.body.velocity.y; + if ( + (мир.состояниеКолобка.скоростьПадения > 300) && + (скоростьПадения == 0) && + мир.колобок.body.touching.down + ) { + мир.состояниеКолобка.прыжок = false; + мир.уведомить("колобок закончил прыжок"); + } + мир.состояниеКолобка.скоростьПадения = скоростьПадения; +}; + + +// // // // + + АнимироватьКолобка = мир => { + +//console.debug("скорость x/y/touching.down", мир.колобок.body.velocity.x, мир.колобок.body.velocity.y, мир.колобок.body.touching.down); + + + var есть = ""; if (мир.колобок.anims.currentAnim) { @@ -132,7 +172,8 @@ } var надо = "колобок-неподвижен"; - if (мир.управление && мир.управление.прыжок && !мир.колобок.body.touching.down) + //if (мир.управление && мир.управление.прыжок && !мир.колобок.body.touching.down) + if (мир.состояниеКолобка.прыжок) { надо = "колобок-прыжок"; } @@ -264,6 +305,19 @@ }; +// // // // + + +ВывестиНачалоПрыжкаВКонсоль = мир => +{ + console.debug("начало прыжка"); +}; +ВывестиОкончаниеПрыжкаВКонсоль = мир => +{ + console.debug("окончание прыжка"); +}; + + /* * * Последовательность @@ -283,11 +337,17 @@ обновить сцену переместить колобка анимировать колобка + определить окончание прыжка колобка мигать колобка остановить передвижение вещей +колобок начал прыжок + воспроизвести звук прыжка + вывести начало прыжка в консоль +колобок закончил прыжок + вывести окончание прыжка в консоль начали мигать колобка - отключить столкновение с платформами и вещами - уменьшить прыгучесть колобка +# отключить столкновение с платформами и вещами +# уменьшить прыгучесть колобка закончили мигать колобка включить столкновение с платформами и вещами восстановить прыгучесть колобка diff --git a/игра/111.изба.js b/игра/111.изба.js index 92e828d..2c8ce98 100644 --- a/игра/111.изба.js +++ b/игра/111.изба.js @@ -128,11 +128,13 @@ y: 180, ширина: 12, }, + // Стол. { x: 1270, y: 427, ширина: 70, }, + // Окно. { x: 1690, y: 375, @@ -192,22 +194,6 @@ низ: 550, верх: 270, }, - /* - { - x: 740, - y: 445, - скорость: 65, - низ: 550, - верх: 270, - }, - { - x: 830, - y: 375, - скорость: 80, - низ: 550, - верх: 270, - }, - */ { x: 785, y: 375,