This commit is contained in:
2021-04-24 20:20:20 +03:00
parent 26dd509faf
commit 89246a354e
16 changed files with 253 additions and 27 deletions

View File

@@ -15,6 +15,8 @@
frameHeight: 94,
}
);
мир.сцена.load.audio("прыжок", "ресурсы/звуки/331381__qubodup__public-domain-jump-sound.wav");
мир.сцена.load.audio("повреждение", "ресурсы/звуки/437650__dersuperanton__getting-hit-damage-scream.wav");
};
@@ -32,6 +34,13 @@
// Следить за колобком камерой.
const камера = мир.сцена.cameras.main;
камера.startFollow(мир.колобок, false, 0.1, 0.1);
мир.состояниеКолобка = {
мигать: false,
мигание: { },
прыгучесть: -570,
коэффициентПрыгучести: 1,
};
};
@@ -66,7 +75,7 @@
НастроитьСтолкновениеКолобка = мир =>
{
мир.сцена.physics.add.collider(мир.колобок, мир.каркас);
мир.сцена.physics.add.collider(мир.колобок, мир.вещи);
мир.столкновениеВещи = мир.сцена.physics.add.collider(мир.колобок, мир.вещи);
мир.столкновениеПлатформы = мир.сцена.physics.add.collider(мир.колобок, мир.платформы);
var столкновениеВраги = мир.сцена.physics.add.collider(мир.колобок, мир.враги);
@@ -103,7 +112,9 @@
if (мир.управление.прыжок && мир.колобок.body.touching.down)
{
мир.колобок.setVelocityY(-570);
var скорость = мир.состояниеКолобка.прыгучесть * мир.состояниеКолобка.коэффициентПрыгучести;
мир.колобок.setVelocityY(скорость);
мир.сцена.sound.play("прыжок");
}
};
@@ -111,7 +122,8 @@
// // // //
АнимироватьКолобка = мир => {
АнимироватьКолобка = мир =>
{
var есть = "";
if (мир.колобок.anims.currentAnim)
{
@@ -139,32 +151,118 @@
// // // //
ОтключитьСтолкновениеСПлатформами = мир => {
ОтключитьСтолкновениеСПлатформамиИВещами = мир =>
{
мир.столкновениеПлатформы.active = false;
мир.столкновениеВещи.active = false;
};
// // // //
ВключитьСтолкновениеСПлатформами = мир => {
ВключитьСтолкновениеСПлатформамиИВещами = мир =>
{
мир.столкновениеПлатформы.active = true;
мир.столкновениеВещи.active = true;
};
// // // //
ОстановитьПередвижениеВещей = мир => {
ОстановитьПередвижениеВещей = мир =>
{
var вещи = мир.вещи.getChildren();
for (var н in вещи)
{
var вещь = вещи[н];
вещь.body.stop();
if (вещь.body.touching.down)
{
вещь.body.stop();
}
}
};
// // // //
НачатьМиганиеКолобка = мир =>
{
var конец = new Date();
конец.setSeconds(конец.getSeconds() + 8);
мир.состояниеКолобка.мигание.окончание = конец;
var звук = мир.сцена.sound.get("повреждение");
if (!звук || !звук.isPlaying)
{
мир.сцена.sound.play("повреждение");
}
if (мир.состояниеКолобка.мигать)
{
return;
}
мир.состояниеКолобка.мигать = true;
мир.состояниеКолобка.мигание = {
шаг: 0.1,
цель: 0,
};
мир.уведомить("начали мигать колобка");
};
// // // //
МигатьКолобка = мир =>
{
if (!мир.состояниеКолобка.мигать)
{
return;
}
var м = мир.состояниеКолобка.мигание;
var сейчас = new Date();
if (м.окончание - сейчас < 0)
{
мир.состояниеКолобка.мигать = false;
мир.колобок.alpha = 1;
мир.уведомить("закончили мигать колобка");
return;
}
var к = (м.цель == 1) ? 1 : -1;
мир.колобок.alpha += к * м.шаг;
if ((мир.колобок.alpha <= 0) || (мир.колобок.alpha >= 1))
{
м.цель = к * -1;
}
};
// // // //
УменьшитьПрыгучестьКолобка = мир =>
{
мир.состояниеКолобка.коэффициентПрыгучести = 0.6;
};
// // // //
ВосстановитьПрыгучестьКолобка = мир =>
{
мир.состояниеКолобка.коэффициентПрыгучести = 1;
};
/*
*
* Последовательность
@@ -179,13 +277,18 @@
создать колобка
создать анимации колобка
настроить столкновение колобка
изменили управление
переместить колобка
столкновение с врагом
отключить столкновение с платформами
начать мигание колобка
обновить сцену
переместить колобка
анимировать колобка
изменили анимацию колобка
мигать колобка
остановить передвижение вещей
начали мигать колобка
отключить столкновение с платформами и вещами
уменьшить прыгучесть колобка
закончили мигать колобка
включить столкновение с платформами и вещами
восстановить прыгучесть колобка
`);