This commit is contained in:
2021-05-14 15:05:10 +03:00
parent 09248b2bc8
commit 326ffc403e
10 changed files with 700 additions and 265 deletions

View File

@@ -39,14 +39,13 @@
const камера = мир.сцена.cameras.main;
камера.startFollow(мир.колобок, false, 0.1, 0.1);
мир.состояниеКолобка = {
мигать: false,
мигание: { },
прыгучесть: -570,
коэффициентПрыгучести: 1,
прыжок: false,
скоростьПадения: 0,
};
// Состояние.
мир.колобок["мигать"] = false;
мир.колобок["мигание"] = { };
мир.колобок["прыгучесть"] = -570;
мир.колобок["коэффициентПрыгучести"] = 1;
мир.колобок["прыжок"] = false;
мир.колобок["скоростьПадения"] = 0;
};
@@ -81,9 +80,17 @@
НастроитьСтолкновениеКолобка = мир =>
{
мир.сцена.physics.add.collider(мир.колобок, мир.каркас);
мир.столкновениеВещи = мир.сцена.physics.add.collider(мир.колобок, мир.вещи);
мир.столкновениеПлатформы = мир.сцена.physics.add.collider(мир.колобок, мир.платформы);
мир.столкновениеВещи = мир.сцена.physics.add.collider(мир.колобок, мир.вещи);
мир.столкновениеВещи.collideCallback = function(a, вещь) {
if (мир.колобок.body.touching.down && вещь.body.touching.up && мир.колобок.прыжок)
{
мир.колобок.вещь = вещь.name;
мир.уведомить("колобок прыгнул на вещь");
}
};
var столкновениеВраги = мир.сцена.physics.add.collider(мир.колобок, мир.враги);
столкновениеВраги.overlapOnly = true;
столкновениеВраги.collideCallback = function(a, b) {
@@ -116,10 +123,10 @@
}
мир.колобок.setVelocityX(x);
if (мир.управление.прыжок && !мир.состояниеКолобка.прыжок)
if (мир.управление.прыжок && !мир.колобок.прыжок)
{
мир.состояниеКолобка.прыжок = true;
var скорость = мир.состояниеКолобка.прыгучесть * мир.состояниеКолобка.коэффициентПрыгучести;
мир.колобок.прыжок = true;
var скорость = мир.колобок.прыгучесть * мир.колобок.коэффициентПрыгучести;
мир.колобок.setVelocityY(скорость);
мир.уведомить("колобок начал прыжок");
}
@@ -140,21 +147,22 @@
ОпределитьОкончаниеПрыжкаКолобка = мир =>
{
if (!мир.состояниеКолобка.прыжок)
if (!мир.колобок.прыжок)
{
return;
}
var скоростьПадения = мир.колобок.body.velocity.y;
if (
(мир.состояниеКолобка.скоростьПадения > 40) &&
(мир.колобок.скоростьПадения > 40) &&
(скоростьПадения == 0) &&
мир.колобок.body.touching.down
) {
мир.состояниеКолобка.прыжок = false;
мир.уведомить("колобок закончит прыжок");
мир.колобок.прыжок = false;
мир.уведомить("колобок закончил прыжок");
}
мир.состояниеКолобка.скоростьПадения = скоростьПадения;
мир.колобок.скоростьПадения = скоростьПадения;
};
@@ -170,7 +178,7 @@
}
var надо = "колобок-неподвижен";
if (мир.состояниеКолобка.прыжок)
if (мир.колобок.прыжок)
{
надо = "колобок-прыжок";
}
@@ -231,7 +239,7 @@
{
var конец = new Date();
конец.setSeconds(конец.getSeconds() + 6);
мир.состояниеКолобка.мигание.окончание = конец;
мир.колобок.мигание.окончание = конец;
var звук = мир.сцена.sound.get("повреждение");
if (!звук || !звук.isPlaying)
@@ -239,13 +247,13 @@
мир.сцена.sound.play("повреждение");
}
if (мир.состояниеКолобка.мигать)
if (мир.колобок.мигать)
{
return;
}
мир.состояниеКолобка.мигать = true;
мир.состояниеКолобка.мигание = {
мир.колобок.мигать = true;
мир.колобок.мигание = {
шаг: 0.1,
цель: 0,
};
@@ -259,17 +267,17 @@
МигатьКолобка = мир =>
{
if (!мир.состояниеКолобка.мигать)
if (!мир.колобок.мигать)
{
return;
}
var м = мир.состояниеКолобка.мигание;
var м = мир.колобок.мигание;
var сейчас = new Date();
if (м.окончание - сейчас < 0)
{
мир.состояниеКолобка.мигать = false;
мир.колобок.мигать = false;
мир.колобок.alpha = 1;
мир.уведомить("закончили мигать колобка");
return;
@@ -289,7 +297,7 @@
УменьшитьПрыгучестьКолобка = мир =>
{
мир.состояниеКолобка.коэффициентПрыгучести = 0.6;
мир.колобок.коэффициентПрыгучести = 0.6;
};
@@ -298,7 +306,7 @@
ВосстановитьПрыгучестьКолобка = мир =>
{
мир.состояниеКолобка.коэффициентПрыгучести = 1;
мир.колобок.коэффициентПрыгучести = 1;
};
@@ -311,7 +319,7 @@
};
ВывестиОкончаниеПрыжкаВКонсоль = мир =>
{
console.debug("окончание прыжка. скорость:", мир.состояниеКолобка.скоростьПадения);
console.debug("окончание прыжка. скорость:", мир.колобок.скоростьПадения);
};