This commit is contained in:
2021-04-30 15:11:40 +03:00
parent 3f1663ef06
commit 6b9a20ffbf
8 changed files with 166 additions and 25 deletions

View File

@@ -25,12 +25,13 @@
СоздатьКолобка = мир =>
{
мир.колобок = мир.сцена.physics.add.sprite(100, 500, "колобок");
//мир.колобок = мир.сцена.physics.add.sprite(1000, 500, "колобок");
var x = 100;
var x = 1300;
мир.колобок = мир.сцена.physics.add.sprite(x, 500, "колобок");
мир.колобок.depth = 10;
мир.колобок.body.setSize(50);
// Портит анимацию прыжков!
//мир.колобок.setBounceY(0.1);
// мир.колобок.setBounceY(0.1);
// Следить за колобком камерой.
const камера = мир.сцена.cameras.main;
@@ -41,6 +42,8 @@
мигание: { },
прыгучесть: -570,
коэффициентПрыгучести: 1,
прыжок: false,
скоростьПадения: 0,
};
};
@@ -111,11 +114,12 @@
}
мир.колобок.setVelocityX(x);
if (мир.управление.прыжок && мир.колобок.body.touching.down)
if (мир.управление.прыжок && !мир.состояниеКолобка.прыжок)
{
мир.состояниеКолобка.прыжок = true;
var скорость = мир.состояниеКолобка.прыгучесть * мир.состояниеКолобка.коэффициентПрыгучести;
мир.колобок.setVelocityY(скорость);
мир.сцена.sound.play("прыжок");
мир.уведомить("колобок начал прыжок");
}
};
@@ -123,6 +127,38 @@
// // // //
ВоспроизвестиЗвукПрыжка = мир =>
{
мир.сцена.sound.play("прыжок");
};
// // // //
ОпределитьОкончаниеПрыжкаКолобка = мир =>
{
if (!мир.состояниеКолобка.прыжок)
{
return;
}
var скоростьПадения = мир.колобок.body.velocity.y;
if (
(мир.состояниеКолобка.скоростьПадения > 40) &&
(скоростьПадения == 0) &&
мир.колобок.body.touching.down
) {
мир.состояниеКолобка.прыжок = false;
мир.уведомить("колобок закончил прыжок");
}
мир.состояниеКолобка.скоростьПадения = скоростьПадения;
};
// // // //
АнимироватьКолобка = мир =>
{
var есть = "";
@@ -132,7 +168,7 @@
}
var надо = "колобок-неподвижен";
if (мир.управление && мир.управление.прыжок && !мир.колобок.body.touching.down)
if (мир.состояниеКолобка.прыжок)
{
надо = "колобок-прыжок";
}
@@ -264,6 +300,19 @@
};
// // // //
ВывестиНачалоПрыжкаВКонсоль = мир =>
{
console.debug("начало прыжка");
};
ВывестиОкончаниеПрыжкаВКонсоль = мир =>
{
console.debug("окончание прыжка. скорость:", мир.состояниеКолобка.скоростьПадения);
};
/*
*
* Последовательность
@@ -283,8 +332,14 @@
обновить сцену
переместить колобка
анимировать колобка
определить окончание прыжка колобка
мигать колобка
остановить передвижение вещей
колобок начал прыжок
воспроизвести звук прыжка
вывести начало прыжка в консоль
колобок закончил прыжок
вывести окончание прыжка в консоль
начали мигать колобка
отключить столкновение с платформами и вещами
уменьшить прыгучесть колобка